mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 13:23:35 -04:00
media: imx: imx7_mipi_csis: Reorganize mipi_csis_probe()
Group the operations performed in mipi_csis_probe() logically to improve readability. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Rui Miguel Silva <rmfrfs@gmail.com> Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
0092d4a8ea
commit
7479454cfe
@@ -1297,22 +1297,21 @@ static int mipi_csis_probe(struct platform_device *pdev)
|
||||
if (!state)
|
||||
return -ENOMEM;
|
||||
|
||||
mutex_init(&state->lock);
|
||||
spin_lock_init(&state->slock);
|
||||
|
||||
state->dev = dev;
|
||||
|
||||
memcpy(state->events, mipi_csis_events, sizeof(state->events));
|
||||
|
||||
/* Parse DT properties. */
|
||||
ret = mipi_csis_parse_dt(state);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "Failed to parse device tree: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = mipi_csis_phy_init(state);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
mipi_csis_phy_reset(state);
|
||||
|
||||
/* Acquire resources. */
|
||||
state->regs = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(state->regs))
|
||||
return PTR_ERR(state->regs);
|
||||
@@ -1321,16 +1320,24 @@ static int mipi_csis_probe(struct platform_device *pdev)
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
|
||||
ret = mipi_csis_phy_init(state);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = mipi_csis_clk_get(state);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Reset PHY and enable the clocks. */
|
||||
mipi_csis_phy_reset(state);
|
||||
|
||||
ret = mipi_csis_clk_enable(state);
|
||||
if (ret < 0) {
|
||||
dev_err(state->dev, "failed to enable clocks: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Now that the hardware is initialized, request the interrupt. */
|
||||
ret = devm_request_irq(dev, irq, mipi_csis_irq_handler, 0,
|
||||
dev_name(dev), state);
|
||||
if (ret) {
|
||||
@@ -1338,22 +1345,23 @@ static int mipi_csis_probe(struct platform_device *pdev)
|
||||
goto disable_clock;
|
||||
}
|
||||
|
||||
platform_set_drvdata(pdev, &state->sd);
|
||||
|
||||
mutex_init(&state->lock);
|
||||
/* Initialize and register the subdev. */
|
||||
ret = mipi_csis_subdev_init(state);
|
||||
if (ret < 0)
|
||||
goto disable_clock;
|
||||
|
||||
platform_set_drvdata(pdev, &state->sd);
|
||||
|
||||
ret = mipi_csis_async_register(state);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "async register failed: %d\n", ret);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
memcpy(state->events, mipi_csis_events, sizeof(state->events));
|
||||
|
||||
/* Initialize debugfs. */
|
||||
mipi_csis_debugfs_init(state);
|
||||
|
||||
/* Enable runtime PM. */
|
||||
pm_runtime_enable(dev);
|
||||
if (!pm_runtime_enabled(dev)) {
|
||||
ret = mipi_csis_pm_resume(dev, true);
|
||||
|
||||
Reference in New Issue
Block a user