Commit 34d868e8 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab

media: staging: media: imx: imx7-media-csi: Initialize locks early on

Group all the direct initialization of imx7_csi fields at the beginning
of the imx7_csi_probe() function instead of spreading them around.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarRui Miguel Silva <rmfrfs@gmail.com>
Tested-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent b73560c8
...@@ -1188,27 +1188,32 @@ static int imx7_csi_probe(struct platform_device *pdev) ...@@ -1188,27 +1188,32 @@ static int imx7_csi_probe(struct platform_device *pdev)
return -ENOMEM; return -ENOMEM;
csi->dev = dev; csi->dev = dev;
platform_set_drvdata(pdev, &csi->sd);
spin_lock_init(&csi->irqlock);
mutex_init(&csi->lock);
csi->mclk = devm_clk_get(&pdev->dev, "mclk"); csi->mclk = devm_clk_get(&pdev->dev, "mclk");
if (IS_ERR(csi->mclk)) { if (IS_ERR(csi->mclk)) {
ret = PTR_ERR(csi->mclk); ret = PTR_ERR(csi->mclk);
dev_err(dev, "Failed to get mclk: %d", ret); dev_err(dev, "Failed to get mclk: %d", ret);
return ret; goto destroy_mutex;
} }
csi->irq = platform_get_irq(pdev, 0); csi->irq = platform_get_irq(pdev, 0);
if (csi->irq < 0) if (csi->irq < 0) {
return csi->irq; ret = csi->irq;
goto destroy_mutex;
}
csi->regbase = devm_platform_ioremap_resource(pdev, 0); csi->regbase = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(csi->regbase)) if (IS_ERR(csi->regbase)) {
return PTR_ERR(csi->regbase); ret = PTR_ERR(csi->regbase);
goto destroy_mutex;
}
csi->model = (enum imx_csi_model)(uintptr_t)of_device_get_match_data(&pdev->dev); csi->model = (enum imx_csi_model)(uintptr_t)of_device_get_match_data(&pdev->dev);
spin_lock_init(&csi->irqlock);
mutex_init(&csi->lock);
/* install interrupt handler */ /* install interrupt handler */
ret = devm_request_irq(dev, csi->irq, imx7_csi_irq_handler, 0, "csi", ret = devm_request_irq(dev, csi->irq, imx7_csi_irq_handler, 0, "csi",
(void *)csi); (void *)csi);
...@@ -1223,7 +1228,6 @@ static int imx7_csi_probe(struct platform_device *pdev) ...@@ -1223,7 +1228,6 @@ static int imx7_csi_probe(struct platform_device *pdev)
ret = PTR_ERR(imxmd); ret = PTR_ERR(imxmd);
goto destroy_mutex; goto destroy_mutex;
} }
platform_set_drvdata(pdev, &csi->sd);
ret = imx_media_of_add_csi(imxmd, node); ret = imx_media_of_add_csi(imxmd, node);
if (ret < 0 && ret != -ENODEV && ret != -EEXIST) if (ret < 0 && ret != -ENODEV && ret != -EEXIST)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment