@@ -887,24 +887,22 @@ void omap4iss_isp_subclk_disable(struct iss_device *iss,
*/
static int iss_enable_clocks(struct iss_device *iss)
{
- int r;
+ int ret;
- r = clk_enable(iss->iss_fck);
- if (r) {
+ ret = clk_enable(iss->iss_fck);
+ if (ret) {
dev_err(iss->dev, "clk_enable iss_fck failed\n");
- return r;
+ return ret;
}
- r = clk_enable(iss->iss_ctrlclk);
- if (r) {
+ ret = clk_enable(iss->iss_ctrlclk);
+ if (ret) {
dev_err(iss->dev, "clk_enable iss_ctrlclk failed\n");
- goto out_clk_enable_ctrlclk;
+ clk_disable(iss->iss_fck);
+ return ret;
}
- return 0;
-out_clk_enable_ctrlclk:
- clk_disable(iss->iss_fck);
- return r;
+ return 0;
}
/*
@@ -826,16 +826,17 @@ iss_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type)
spin_unlock_irqrestore(&video->qlock, flags);
}
- if (ret < 0) {
+ mutex_unlock(&video->stream_lock);
+ return 0;
+
err_omap4iss_set_stream:
- vb2_streamoff(&vfh->queue, type);
+ vb2_streamoff(&vfh->queue, type);
err_iss_video_check_format:
- media_entity_pipeline_stop(&video->video.entity);
+ media_entity_pipeline_stop(&video->video.entity);
err_media_entity_pipeline_start:
- if (video->iss->pdata->set_constraints)
- video->iss->pdata->set_constraints(video->iss, false);
- video->queue = NULL;
- }
+ if (video->iss->pdata->set_constraints)
+ video->iss->pdata->set_constraints(video->iss, false);
+ video->queue = NULL;
mutex_unlock(&video->stream_lock);
return ret;
Get rid of a goto statement for a simple error path that can be inlined, and split spaghetti error code to a separate section. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- drivers/staging/media/omap4iss/iss.c | 20 +++++++++----------- drivers/staging/media/omap4iss/iss_video.c | 15 ++++++++------- 2 files changed, 17 insertions(+), 18 deletions(-)