[media] v4l: omap4iss: Simplify error paths
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> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
245d6b2d50
Коммит
2b16b44a1c
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче