media: omap3isp: Don't set streaming state on random subdevs
authorSakari Ailus <sakari.ailus@linux.intel.com>
Wed, 7 Aug 2019 14:21:27 +0000 (11:21 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 15 Aug 2019 11:07:04 +0000 (08:07 -0300)
The streaming state should be set to the first upstream sub-device only,
not everywhere, for a sub-device driver itself knows how to best control
the streaming state of its own upstream sub-devices.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/omap3isp/isp.c

index 36fb3bef7dbece28cc86ab5e72bd0096aadda677..327c5716922aceb5a2b2dbaf0592057c7394d9b9 100644 (file)
@@ -719,6 +719,10 @@ static int isp_pipeline_enable(struct isp_pipeline *pipe,
                                        s_stream, mode);
                        pipe->do_propagation = true;
                }
+
+               /* Stop at the first external sub-device. */
+               if (subdev->dev != isp->dev)
+                       break;
        }
 
        return 0;
@@ -833,6 +837,10 @@ static int isp_pipeline_disable(struct isp_pipeline *pipe)
                                                      &subdev->entity);
                        failure = -ETIMEDOUT;
                }
+
+               /* Stop at the first external sub-device. */
+               if (subdev->dev != isp->dev)
+                       break;
        }
 
        return failure;