diff options
-rw-r--r-- | drivers/staging/media/omap4iss/iss.c | 11 | ||||
-rw-r--r-- | drivers/staging/media/omap4iss/iss_csi2.c | 8 | ||||
-rw-r--r-- | drivers/staging/media/omap4iss/iss_ipipe.c | 3 | ||||
-rw-r--r-- | drivers/staging/media/omap4iss/iss_ipipeif.c | 3 | ||||
-rw-r--r-- | drivers/staging/media/omap4iss/iss_resizer.c | 3 |
5 files changed, 15 insertions, 13 deletions
diff --git a/drivers/staging/media/omap4iss/iss.c b/drivers/staging/media/omap4iss/iss.c index ba8460dc8d28..a0bf2f3cbd72 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; } /* diff --git a/drivers/staging/media/omap4iss/iss_csi2.c b/drivers/staging/media/omap4iss/iss_csi2.c index 077545ffa54f..7e7e955d4be6 100644 --- a/drivers/staging/media/omap4iss/iss_csi2.c +++ b/drivers/staging/media/omap4iss/iss_csi2.c @@ -1056,6 +1056,7 @@ static int csi2_set_stream(struct v4l2_subdev *sd, int enable) struct iss_device *iss = csi2->iss; struct iss_pipeline *pipe = to_iss_pipeline(&csi2->subdev.entity); struct iss_video *video_out = &csi2->video_out; + int ret = 0; if (csi2->state == ISS_PIPELINE_STREAM_STOPPED) { if (enable == ISS_PIPELINE_STREAM_STOPPED) @@ -1069,8 +1070,6 @@ static int csi2_set_stream(struct v4l2_subdev *sd, int enable) switch (enable) { case ISS_PIPELINE_STREAM_CONTINUOUS: { - int ret; - ret = omap4iss_csiphy_config(iss, sd); if (ret < 0) return ret; @@ -1102,8 +1101,7 @@ static int csi2_set_stream(struct v4l2_subdev *sd, int enable) return 0; if (omap4iss_module_sync_idle(&sd->entity, &csi2->wait, &csi2->stopping)) - dev_dbg(iss->dev, "%s: module stop timeout.\n", - sd->name); + ret = -ETIMEDOUT; csi2_ctx_enable(csi2, 0, 0); csi2_if_enable(csi2, 0); csi2_irq_ctx_set(csi2, 0); @@ -1117,7 +1115,7 @@ static int csi2_set_stream(struct v4l2_subdev *sd, int enable) } csi2->state = enable; - return 0; + return ret; } /* subdev video operations */ diff --git a/drivers/staging/media/omap4iss/iss_ipipe.c b/drivers/staging/media/omap4iss/iss_ipipe.c index d0b9f8c512fc..c013f839146a 100644 --- a/drivers/staging/media/omap4iss/iss_ipipe.c +++ b/drivers/staging/media/omap4iss/iss_ipipe.c @@ -166,8 +166,7 @@ static int ipipe_set_stream(struct v4l2_subdev *sd, int enable) return 0; if (omap4iss_module_sync_idle(&sd->entity, &ipipe->wait, &ipipe->stopping)) - dev_dbg(iss->dev, "%s: module stop timeout.\n", - sd->name); + ret = -ETIMEDOUT; ipipe_enable(ipipe, 0); omap4iss_isp_disable_interrupts(iss); diff --git a/drivers/staging/media/omap4iss/iss_ipipeif.c b/drivers/staging/media/omap4iss/iss_ipipeif.c index 2d11f62d0b12..00bc937aa20d 100644 --- a/drivers/staging/media/omap4iss/iss_ipipeif.c +++ b/drivers/staging/media/omap4iss/iss_ipipeif.c @@ -363,8 +363,7 @@ static int ipipeif_set_stream(struct v4l2_subdev *sd, int enable) return 0; if (omap4iss_module_sync_idle(&sd->entity, &ipipeif->wait, &ipipeif->stopping)) - dev_dbg(iss->dev, "%s: module stop timeout.\n", - sd->name); + ret = -ETIMEDOUT; if (ipipeif->output & IPIPEIF_OUTPUT_MEMORY) ipipeif_write_enable(ipipeif, 0); diff --git a/drivers/staging/media/omap4iss/iss_resizer.c b/drivers/staging/media/omap4iss/iss_resizer.c index 5bf50808acc3..9dbf0185a86d 100644 --- a/drivers/staging/media/omap4iss/iss_resizer.c +++ b/drivers/staging/media/omap4iss/iss_resizer.c @@ -416,8 +416,7 @@ static int resizer_set_stream(struct v4l2_subdev *sd, int enable) return 0; if (omap4iss_module_sync_idle(&sd->entity, &resizer->wait, &resizer->stopping)) - dev_dbg(iss->dev, "%s: module stop timeout.\n", - sd->name); + ret = -ETIMEDOUT; resizer_enable(resizer, 0); omap4iss_isp_disable_interrupts(iss); |