On 11/17/17 19:23, Ian Jamison wrote:
> It is possible to call STREAMON without the minimum number of
> buffers queued. In this case the vb2_queue state will be set to
> streaming but the start_streaming vb2_op will not be called.
> Later when enough buffers are queued, start_streaming will
> be called but vb2_is_streaming will already return true.
> 
> Signed-off-by: Ian Jamison <ian....@arkver.com>
> ---
>  drivers/staging/media/imx/imx-media-capture.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/staging/media/imx/imx-media-capture.c 
> b/drivers/staging/media/imx/imx-media-capture.c
> index ddab4c249da2..34b492c2419c 100644
> --- a/drivers/staging/media/imx/imx-media-capture.c
> +++ b/drivers/staging/media/imx/imx-media-capture.c
> @@ -449,9 +449,6 @@ static int capture_start_streaming(struct vb2_queue *vq, 
> unsigned int count)
>       unsigned long flags;
>       int ret;
>  
> -     if (vb2_is_streaming(vq))
> -             return 0;
> -
>       ret = imx_media_pipeline_set_stream(priv->md, &priv->src_sd->entity,
>                                           true);
>       if (ret) {
> 

Can you also remove this from capture_stop_streaming:

        if (!vb2_is_streaming(vq))
                return;

Both checks are wrong and pointless. The vb2 core will do all the right checks
and this shouldn't be done again (and wrongly) in the driver.

Regards,

        Hans

Reply via email to