diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2012-05-25 02:29:40 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-06-25 08:23:50 -0400 |
commit | f676fa068819357f716953920b764554fe116b3c (patch) | |
tree | 1e48932de27e4d3c0eddd1a8f40bf7a3ae0fa947 | |
parent | a1a5861bd9ca3a6cb7ab89dd836da8cd158986b0 (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.c | 8 |
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 | } |