goto return_bufs;
}
- ret = imx_media_pipeline_set_stream(priv->md, &priv->src_sd->entity,
- true);
+ ret = imx_media_pipeline_set_stream(priv->md, &priv->vdev,
+ &priv->src_sd->entity, true);
if (ret) {
dev_err(priv->dev, "pipeline start failed with %d\n", ret);
goto return_bufs;
unsigned long flags;
int ret;
- ret = imx_media_pipeline_set_stream(priv->md, &priv->src_sd->entity,
- false);
+ ret = imx_media_pipeline_set_stream(priv->md, &priv->vdev,
+ &priv->src_sd->entity, false);
if (ret)
dev_warn(priv->dev, "pipeline stop failed with %d\n", ret);
* Turn current pipeline streaming on/off starting from entity.
*/
int imx_media_pipeline_set_stream(struct imx_media_dev *imxmd,
+ struct imx_media_video_dev *vdev,
struct media_entity *entity,
bool on)
{
mutex_lock(&imxmd->md.graph_mutex);
if (on) {
- ret = __media_pipeline_start(entity->pads, &imxmd->pipe);
+ ret = __media_pipeline_start(entity->pads, &vdev->pipe);
if (ret)
goto out;
ret = v4l2_subdev_call(sd, video, s_stream, 1);
struct imx_media_video_dev {
struct video_device *vfd;
+ /* the pipeline object */
+ struct media_pipeline pipe;
+
/* the user format */
struct v4l2_pix_format fmt;
/* the compose rectangle */
struct media_device md;
struct v4l2_device v4l2_dev;
- /* the pipeline object */
- struct media_pipeline pipe;
-
struct mutex mutex; /* protect elements below */
/* master video device list */
int size);
int imx_media_pipeline_set_stream(struct imx_media_dev *imxmd,
+ struct imx_media_video_dev *vdev,
struct media_entity *entity,
bool on);