2019-12-10 09:15:39

by Chuhong Yuan

[permalink] [raw]
Subject: [PATCH] media: omap3isp: add checks for devm_regulator_get

The driver misses checks for devm_regulator_get().
Add checks to fix it.

Signed-off-by: Chuhong Yuan <[email protected]>
---
drivers/media/platform/omap3isp/isp.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
index 327c5716922a..ef3502182c3a 100644
--- a/drivers/media/platform/omap3isp/isp.c
+++ b/drivers/media/platform/omap3isp/isp.c
@@ -2312,7 +2312,16 @@ static int isp_probe(struct platform_device *pdev)

/* Regulators */
isp->isp_csiphy1.vdd = devm_regulator_get(&pdev->dev, "vdd-csiphy1");
+ if (IS_ERR(isp->isp_csiphy1.vdd)) {
+ ret = PTR_ERR(isp->isp_csiphy1.vdd);
+ goto error;
+ }
+
isp->isp_csiphy2.vdd = devm_regulator_get(&pdev->dev, "vdd-csiphy2");
+ if (IS_ERR(isp->isp_csiphy2.vdd)) {
+ ret = PTR_ERR(isp->isp_csiphy2.vdd);
+ goto error;
+ }

/* Clocks
*
--
2.24.0


2019-12-13 00:05:04

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media: omap3isp: add checks for devm_regulator_get

Hi Chuhong,

(CC'ing Sakari Ailus)

Thank you for the patch.

On Tue, Dec 10, 2019 at 05:14:28PM +0800, Chuhong Yuan wrote:
> The driver misses checks for devm_regulator_get().
> Add checks to fix it.
>
> Signed-off-by: Chuhong Yuan <[email protected]>
> ---
> drivers/media/platform/omap3isp/isp.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c
> index 327c5716922a..ef3502182c3a 100644
> --- a/drivers/media/platform/omap3isp/isp.c
> +++ b/drivers/media/platform/omap3isp/isp.c
> @@ -2312,7 +2312,16 @@ static int isp_probe(struct platform_device *pdev)
>
> /* Regulators */
> isp->isp_csiphy1.vdd = devm_regulator_get(&pdev->dev, "vdd-csiphy1");
> + if (IS_ERR(isp->isp_csiphy1.vdd)) {
> + ret = PTR_ERR(isp->isp_csiphy1.vdd);
> + goto error;
> + }
> +
> isp->isp_csiphy2.vdd = devm_regulator_get(&pdev->dev, "vdd-csiphy2");
> + if (IS_ERR(isp->isp_csiphy2.vdd)) {
> + ret = PTR_ERR(isp->isp_csiphy2.vdd);
> + goto error;
> + }

Those regulators are currently checked at runtime in
omap3isp_csiphy_acquire(). The check is incorrect as it checks for NULL
while vdd would contain an ERR_PTR, so there's a real issue. However,
not all platforms support the CSI-2 receivers, and only omap3-n950.dts
and omap3-n9.dts provide the regulators. They thus need to be kept
optional.

Would you like to provide another patch that fixes the checks in
omap3isp_csiphy_acquire() ?

>
> /* Clocks
> *

--
Regards,

Laurent Pinchart