public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] omap3isp: ccp2: Don't ignore the regulator_enable() return value
@ 2013-06-07 10:35 Laurent Pinchart
  2013-06-07 10:51 ` Sakari Ailus
  0 siblings, 1 reply; 3+ messages in thread
From: Laurent Pinchart @ 2013-06-07 10:35 UTC (permalink / raw)
  To: linux-media; +Cc: sakari.ailus, Hans Verkuil

Check the return value and catch errors correctly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/media/platform/omap3isp/ispccp2.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/media/platform/omap3isp/ispccp2.c b/drivers/media/platform/omap3isp/ispccp2.c
index c5d84c9..fc074dd 100644
--- a/drivers/media/platform/omap3isp/ispccp2.c
+++ b/drivers/media/platform/omap3isp/ispccp2.c
@@ -158,13 +158,17 @@ static void ccp2_pwr_cfg(struct isp_ccp2_device *ccp2)
  * @ccp2: pointer to ISP CCP2 device
  * @enable: enable/disable flag
  */
-static void ccp2_if_enable(struct isp_ccp2_device *ccp2, u8 enable)
+static int ccp2_if_enable(struct isp_ccp2_device *ccp2, u8 enable)
 {
 	struct isp_device *isp = to_isp_device(ccp2);
+	int ret;
 	int i;
 
-	if (enable && ccp2->vdds_csib)
-		regulator_enable(ccp2->vdds_csib);
+	if (enable && ccp2->vdds_csib) {
+		ret = regulator_enable(ccp2->vdds_csib);
+		if (ret < 0)
+			return ret;
+	}
 
 	/* Enable/Disable all the LCx channels */
 	for (i = 0; i < CCP2_LCx_CHANS_NUM; i++)
@@ -179,6 +183,8 @@ static void ccp2_if_enable(struct isp_ccp2_device *ccp2, u8 enable)
 
 	if (!enable && ccp2->vdds_csib)
 		regulator_disable(ccp2->vdds_csib);
+
+	return 0;
 }
 
 /*
@@ -851,7 +857,11 @@ static int ccp2_s_stream(struct v4l2_subdev *sd, int enable)
 		ccp2_print_status(ccp2);
 
 		/* Enable CSI1/CCP2 interface */
-		ccp2_if_enable(ccp2, 1);
+		ret = ccp2_if_enable(ccp2, 1);
+		if (ret < 0) {
+			omap3isp_csiphy_release(ccp2->phy);
+			return ret;
+		}
 		break;
 
 	case ISP_PIPELINE_STREAM_SINGLESHOT:
-- 
Regards,

Laurent Pinchart


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] omap3isp: ccp2: Don't ignore the regulator_enable() return value
  2013-06-07 10:35 [PATCH] omap3isp: ccp2: Don't ignore the regulator_enable() return value Laurent Pinchart
@ 2013-06-07 10:51 ` Sakari Ailus
  2013-06-08  7:10   ` Laurent Pinchart
  0 siblings, 1 reply; 3+ messages in thread
From: Sakari Ailus @ 2013-06-07 10:51 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: linux-media, Hans Verkuil

Thanks for the patch, Laurent!

On Fri, Jun 07, 2013 at 12:35:41PM +0200, Laurent Pinchart wrote:
> @@ -851,7 +857,11 @@ static int ccp2_s_stream(struct v4l2_subdev *sd, int enable)
>  		ccp2_print_status(ccp2);
>  
>  		/* Enable CSI1/CCP2 interface */
> -		ccp2_if_enable(ccp2, 1);
> +		ret = ccp2_if_enable(ccp2, 1);
> +		if (ret < 0) {
> +			omap3isp_csiphy_release(ccp2->phy);

if (ccp2->phy)
	omap3isp_csiphy_release(ccp2->phy);

?

I don't think 3430 has a separate phy, so it's NULL.

> +			return ret;
> +		}
>  		break;
>  
>  	case ISP_PIPELINE_STREAM_SINGLESHOT:

-- 
Regards,

Sakari Ailus
e-mail: sakari.ailus@iki.fi	XMPP: sailus@retiisi.org.uk

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] omap3isp: ccp2: Don't ignore the regulator_enable() return value
  2013-06-07 10:51 ` Sakari Ailus
@ 2013-06-08  7:10   ` Laurent Pinchart
  0 siblings, 0 replies; 3+ messages in thread
From: Laurent Pinchart @ 2013-06-08  7:10 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media, Hans Verkuil

Hi Sakari,

Thanks for the review.

On Friday 07 June 2013 13:51:18 Sakari Ailus wrote:
> On Fri, Jun 07, 2013 at 12:35:41PM +0200, Laurent Pinchart wrote:
> > @@ -851,7 +857,11 @@ static int ccp2_s_stream(struct v4l2_subdev *sd, int
> > enable)> 
> >  		ccp2_print_status(ccp2);
> >  		
> >  		/* Enable CSI1/CCP2 interface */
> > 
> > -		ccp2_if_enable(ccp2, 1);
> > +		ret = ccp2_if_enable(ccp2, 1);
> > +		if (ret < 0) {
> > +			omap3isp_csiphy_release(ccp2->phy);
> 
> if (ccp2->phy)
> 	omap3isp_csiphy_release(ccp2->phy);
> 
> ?
> 
> I don't think 3430 has a separate phy, so it's NULL.

Oops, my bad. Fixed in v2.

> > +			return ret;
> > +		}
> > 
> >  		break;
> >  	
> >  	case ISP_PIPELINE_STREAM_SINGLESHOT:

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-06-08  7:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-07 10:35 [PATCH] omap3isp: ccp2: Don't ignore the regulator_enable() return value Laurent Pinchart
2013-06-07 10:51 ` Sakari Ailus
2013-06-08  7:10   ` Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox