aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2012-05-25 02:29:40 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-06-25 08:23:50 -0400
commitf676fa068819357f716953920b764554fe116b3c (patch)
tree1e48932de27e4d3c0eddd1a8f40bf7a3ae0fa947
parenta1a5861bd9ca3a6cb7ab89dd836da8cd158986b0 (diff)
[media] s5p-fimc: Stop media entity pipeline if fimc_pipeline_validate fails
Stops the media entity pipeline which was started earlier if fimc_pipeline_validate fails. [s.nawrocki: reworked to not exceed 80 characters line length] Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/s5p-fimc/fimc-capture.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-capture.c b/drivers/media/video/s5p-fimc/fimc-capture.c
index 7ace324d30cd..725812aa0c30 100644
--- a/drivers/media/video/s5p-fimc/fimc-capture.c
+++ b/drivers/media/video/s5p-fimc/fimc-capture.c
@@ -1040,20 +1040,22 @@ static int fimc_cap_streamon(struct file *file, void *priv,
1040{ 1040{
1041 struct fimc_dev *fimc = video_drvdata(file); 1041 struct fimc_dev *fimc = video_drvdata(file);
1042 struct fimc_pipeline *p = &fimc->pipeline; 1042 struct fimc_pipeline *p = &fimc->pipeline;
1043 struct v4l2_subdev *sd = p->subdevs[IDX_SENSOR];
1043 int ret; 1044 int ret;
1044 1045
1045 if (fimc_capture_active(fimc)) 1046 if (fimc_capture_active(fimc))
1046 return -EBUSY; 1047 return -EBUSY;
1047 1048
1048 ret = media_entity_pipeline_start(&p->subdevs[IDX_SENSOR]->entity, 1049 ret = media_entity_pipeline_start(&sd->entity, p->m_pipeline);
1049 p->m_pipeline);
1050 if (ret < 0) 1050 if (ret < 0)
1051 return ret; 1051 return ret;
1052 1052
1053 if (fimc->vid_cap.user_subdev_api) { 1053 if (fimc->vid_cap.user_subdev_api) {
1054 ret = fimc_pipeline_validate(fimc); 1054 ret = fimc_pipeline_validate(fimc);
1055 if (ret) 1055 if (ret < 0) {
1056 media_entity_pipeline_stop(&sd->entity);
1056 return ret; 1057 return ret;
1058 }
1057 } 1059 }
1058 return vb2_streamon(&fimc->vid_cap.vbq, type); 1060 return vb2_streamon(&fimc->vid_cap.vbq, type);
1059} 1061}