[media] em28xx: move vinmode and vinctrl data from struct em28xx to struct v4l2
authorFrank Schaefer <fschaefer.oss@googlemail.com>
Mon, 24 Mar 2014 19:33:15 +0000 (16:33 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Fri, 23 May 2014 16:16:03 +0000 (13:16 -0300)
The video input mode and control data also belong only to the
analog side. move them to struct em28xx_v4l.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/em28xx/em28xx-camera.c
drivers/media/usb/em28xx/em28xx-video.c
drivers/media/usb/em28xx/em28xx.h

index c2672b4f45403febca4b238a4699b9d747e3d5d3..3a888674dc27c1113fe5d0cfbda3bd3a1069523e 100644 (file)
@@ -372,8 +372,8 @@ int em28xx_init_camera(struct em28xx *dev)
                        break;
                }
                /* probably means GRGB 16 bit bayer */
-               dev->vinmode = 0x0d;
-               dev->vinctl = 0x00;
+               v4l2->vinmode = 0x0d;
+               v4l2->vinctl = 0x00;
 
                break;
        }
@@ -384,8 +384,8 @@ int em28xx_init_camera(struct em28xx *dev)
                em28xx_initialize_mt9m001(dev);
 
                /* probably means BGGR 16 bit bayer */
-               dev->vinmode = 0x0c;
-               dev->vinctl = 0x00;
+               v4l2->vinmode = 0x0c;
+               v4l2->vinctl = 0x00;
 
                break;
        case EM28XX_MT9M111:
@@ -396,8 +396,8 @@ int em28xx_init_camera(struct em28xx *dev)
                em28xx_write_reg(dev, EM28XX_R0F_XCLK, dev->board.xclk);
                em28xx_initialize_mt9m111(dev);
 
-               dev->vinmode = 0x0a;
-               dev->vinctl = 0x00;
+               v4l2->vinmode = 0x0a;
+               v4l2->vinctl = 0x00;
 
                break;
        case EM28XX_OV2640:
@@ -438,8 +438,8 @@ int em28xx_init_camera(struct em28xx *dev)
                /* NOTE: for UXGA=1600x1200 switch to 12MHz */
                dev->board.xclk = EM28XX_XCLK_FREQUENCY_24MHZ;
                em28xx_write_reg(dev, EM28XX_R0F_XCLK, dev->board.xclk);
-               dev->vinmode = 0x08;
-               dev->vinctl = 0x00;
+               v4l2->vinmode = 0x08;
+               v4l2->vinctl = 0x00;
 
                break;
        }
index eeb58ebd98f6b536971b3f8ec9eb22eabbea83d3..9adecb996bf05bdcf33d92dc9de86215efb9c8f2 100644 (file)
@@ -236,11 +236,11 @@ static int em28xx_set_outfmt(struct em28xx *dev)
        if (ret < 0)
                return ret;
 
-       ret = em28xx_write_reg(dev, EM28XX_R10_VINMODE, dev->vinmode);
+       ret = em28xx_write_reg(dev, EM28XX_R10_VINMODE, v4l2->vinmode);
        if (ret < 0)
                return ret;
 
-       vinctrl = dev->vinctl;
+       vinctrl = v4l2->vinctl;
        if (em28xx_vbi_supported(dev) == 1) {
                vinctrl |= EM28XX_VINCTRL_VBI_RAW;
                em28xx_write_reg(dev, EM28XX_R34_VBI_START_H, 0x00);
@@ -2312,9 +2312,9 @@ static int em28xx_v4l2_init(struct em28xx *dev)
        /*
         * Default format, used for tvp5150 or saa711x output formats
         */
-       dev->vinmode = 0x10;
-       dev->vinctl  = EM28XX_VINCTRL_INTERLACED |
-                      EM28XX_VINCTRL_CCIR656_ENABLE;
+       v4l2->vinmode = 0x10;
+       v4l2->vinctl  = EM28XX_VINCTRL_INTERLACED |
+                       EM28XX_VINCTRL_CCIR656_ENABLE;
 
        /* request some modules */
 
index a1b76f796f5585c2a912ee19601827d793ea0d7c..ccb9cd5f8947151b60171f5b8fd526d5dd038d84 100644 (file)
@@ -516,6 +516,9 @@ struct em28xx_v4l2 {
        struct mutex vb_queue_lock;
        struct mutex vb_vbi_queue_lock;
 
+       u8 vinmode;
+       u8 vinctl;
+
        /* Frame properties */
        int width;              /* current frame width */
        int height;             /* current frame height */
@@ -598,9 +601,6 @@ struct em28xx {
        /* Progressive (non-interlaced) mode */
        int progressive;
 
-       /* Vinmode/Vinctl used at the driver */
-       int vinmode, vinctl;
-
        /* Controls audio streaming */
        struct work_struct wq_trigger;  /* Trigger to start/stop audio for alsa module */
        atomic_t       stream_started;  /* stream should be running if true */