[media] cx88: drop mpeg_active field
authorHans Verkuil <hans.verkuil@cisco.com>
Fri, 29 Aug 2014 09:06:37 +0000 (06:06 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 3 Nov 2014 10:33:29 +0000 (08:33 -0200)
The vb2 framework knows if streaming is in progress, no need to use
a separate field for that.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cx88/cx88-blackbird.c
drivers/media/pci/cx88/cx88.h

index 58e5254e154a98d9290697fc8315458d7c0cf79b..13b8ed3226936da0c1721daf727880ed7637fdfe 100644 (file)
@@ -536,9 +536,6 @@ static int blackbird_initialize_codec(struct cx8802_dev *dev)
        dprintk(1,"Initialize codec\n");
        retval = blackbird_api_cmd(dev, CX2341X_ENC_PING_FW, 0, 0); /* ping */
        if (retval < 0) {
-
-               dev->mpeg_active = 0;
-
                /* ping was not successful, reset and upload firmware */
                cx_write(MO_SRST_IO, 0); /* SYS_RSTO=0 */
                cx_write(MO_SRST_IO, 1); /* SYS_RSTO=1 */
@@ -622,7 +619,6 @@ static int blackbird_start_codec(struct cx8802_dev *dev)
                        BLACKBIRD_RAW_BITS_NONE
                );
 
-       dev->mpeg_active = 1;
        return 0;
 }
 
@@ -636,7 +632,6 @@ static int blackbird_stop_codec(struct cx8802_dev *dev)
 
        cx2341x_handler_set_busy(&dev->cxhdl, 0);
 
-       dev->mpeg_active = 0;
        return 0;
 }
 
@@ -875,18 +870,22 @@ static int vidioc_s_frequency (struct file *file, void *priv,
 {
        struct cx8802_dev *dev = video_drvdata(file);
        struct cx88_core *core = dev->core;
+       bool streaming;
 
        if (unlikely(UNSET == core->board.tuner_type))
                return -EINVAL;
        if (unlikely(f->tuner != 0))
                return -EINVAL;
-       if (dev->mpeg_active)
+       streaming = dev->vb2_mpegq.start_streaming_called;
+       if (streaming)
                blackbird_stop_codec(dev);
 
        cx88_set_freq (core,f);
        blackbird_initialize_codec(dev);
        cx88_set_scale(core, core->width, core->height,
                        core->field);
+       if (streaming)
+               blackbird_start_codec(dev);
        return 0;
 }
 
index 862c609386632735d417c71c85b95967762abe0b..93bc7cf7d39b3e1c6db6dcdbcf34bc63c8b57541 100644 (file)
@@ -557,7 +557,6 @@ struct cx8802_dev {
 #if IS_ENABLED(CONFIG_VIDEO_CX88_BLACKBIRD)
        struct video_device        *mpeg_dev;
        u32                        mailbox;
-       unsigned char              mpeg_active; /* nonzero if mpeg encoder is active */
 
        /* mpeg params */
        struct cx2341x_handler     cxhdl;