summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/omap4iss/iss.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2013-10-09 11:52:45 -0300
committerMauro Carvalho Chehab <m.chehab@samsung.com>2013-12-11 07:02:54 -0200
commit6016498f2b9d72b4f813d7349f0621ccc92c4f5a (patch)
treed476c9621a729ba9f8ef52cf37a650aff2fb5bd3 /drivers/staging/media/omap4iss/iss.c
parent0b1d4249660fbb0c558a096ce72914b7f5fa82a8 (diff)
downloadop-kernel-dev-6016498f2b9d72b4f813d7349f0621ccc92c4f5a.zip
op-kernel-dev-6016498f2b9d72b4f813d7349f0621ccc92c4f5a.tar.gz
[media] v4l: omap4iss: Propagate stop timeouts from submodules to the driver core
Return an error from the s_stream handlers when stopping the stream failed instead of just logging the error and ignoring it. While we're at it, move the logging code from submodules to the driver code. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/staging/media/omap4iss/iss.c')
-rw-r--r--drivers/staging/media/omap4iss/iss.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/staging/media/omap4iss/iss.c b/drivers/staging/media/omap4iss/iss.c
index ba8460d..a0bf2f3 100644
--- a/drivers/staging/media/omap4iss/iss.c
+++ b/drivers/staging/media/omap4iss/iss.c
@@ -614,6 +614,8 @@ static int iss_pipeline_disable(struct iss_pipeline *pipe)
struct media_entity *entity;
struct media_pad *pad;
struct v4l2_subdev *subdev;
+ int failure = 0;
+ int ret;
entity = &pipe->output->video.entity;
while (1) {
@@ -629,10 +631,15 @@ static int iss_pipeline_disable(struct iss_pipeline *pipe)
entity = pad->entity;
subdev = media_entity_to_v4l2_subdev(entity);
- v4l2_subdev_call(subdev, video, s_stream, 0);
+ ret = v4l2_subdev_call(subdev, video, s_stream, 0);
+ if (ret < 0) {
+ dev_dbg(iss->dev, "%s: module stop timeout.\n",
+ subdev->name);
+ failure = -ETIMEDOUT;
+ }
}
- return 0;
+ return failure;
}
/*
OpenPOWER on IntegriCloud