media: imx-pxp: Check the return value from clk_prepare_enable()
Subsystems (2)
Fabio Estevam
reviewerPATCH 1/1 media: imx-pxp: Check the return value from clk_prepare_enable()
clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error.
Signed-off-by Fabio Estevam <[email protected]>
--- drivers/media/platform/imx-pxp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/media/platform/imx-pxp.c +4 -1
@@ -1666,7 +1666,10 @@ static int pxp_probe(struct platform_device *pdev)return ret; } -clk_prepare_enable (dev->clk); + ret =clk_prepare_enable (dev->clk); +if (ret <0 ) +return ret; +pxp_soft_reset (dev);spin_lock_init (&dev->irqlock);
Signature · 1 line
2.7.4
Fabio Estevam
reviewerPATCH 2/2 media: imx-pxp: Check for pxp_soft_reset() error
pxp_soft_reset() may fail with a timeout, so it is better to propagate the error in this case.
Signed-off-by Fabio Estevam <[email protected]>
--- drivers/media/platform/imx-pxp.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
drivers/media/platform/imx-pxp.c +9 -3
@@ -1607,7 +1607,7 @@ static const struct v4l2_m2m_ops m2m_ops = { .job_abort = pxp_job_abort, }; -static void pxp_soft_reset (struct pxp_dev *dev) +static int pxp_soft_reset (struct pxp_dev *dev) {int ret;u32 val;
@@ -1619,11 +1619,15 @@ static void pxp_soft_reset(struct pxp_dev *dev) ret =readl_poll_timeout (dev->mmio +HW_PXP_CTRL , val, val &BM_PXP_CTRL_CLKGATE ,0 ,100 ); -if (ret <0 ) +if (ret <0 ) {pr_err ("PXP reset timeout\n" ); +return ret; + }writel (BM_PXP_CTRL_SFTRST , dev->mmio +HW_PXP_CTRL_CLR );writel (BM_PXP_CTRL_CLKGATE , dev->mmio +HW_PXP_CTRL_CLR ); + +return 0 ; }static int pxp_probe (struct platform_device *pdev)
@@ -1670,7 +1674,9 @@ static int pxp_probe(struct platform_device *pdev)if (ret <0 )return ret; -pxp_soft_reset (dev); + ret =pxp_soft_reset (dev); +if (ret <0 ) +return ret;spin_lock_init (&dev->irqlock);
Signature · 1 line
2.7.4