]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] em28xx: move sensor parameter fields from struct em28xx to struct v4l2
authorFrank Schaefer <fschaefer.oss@googlemail.com>
Mon, 24 Mar 2014 19:33:19 +0000 (16:33 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Fri, 23 May 2014 16:22:06 +0000 (13:22 -0300)
Move camera sensor resolution and xtal out of em28xx common struct,
as thore are used only by the em28xx v4l2 submodule.

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 3a888674dc27c1113fe5d0cfbda3bd3a1069523e..12d4c0326e3168bd025fba7fa82db693fa74053b 100644 (file)
@@ -349,8 +349,8 @@ int em28xx_init_camera(struct em28xx *dev)
                        .platform_data = &pdata,
                };
 
-               dev->sensor_xres = 640;
-               dev->sensor_yres = 480;
+               v4l2->sensor_xres = 640;
+               v4l2->sensor_yres = 480;
 
                /*
                 * FIXME: mt9v011 uses I2S speed as xtal clk - at least with
@@ -363,8 +363,8 @@ int em28xx_init_camera(struct em28xx *dev)
                 */
                dev->board.xclk = EM28XX_XCLK_FREQUENCY_4_3MHZ;
                em28xx_write_reg(dev, EM28XX_R0F_XCLK, dev->board.xclk);
-               dev->sensor_xtal = 4300000;
-               pdata.xtal = dev->sensor_xtal;
+               v4l2->sensor_xtal = 4300000;
+               pdata.xtal = v4l2->sensor_xtal;
                if (NULL ==
                    v4l2_i2c_new_subdev_board(&dev->v4l2->v4l2_dev, adap,
                                              &mt9v011_info, NULL)) {
@@ -378,8 +378,8 @@ int em28xx_init_camera(struct em28xx *dev)
                break;
        }
        case EM28XX_MT9M001:
-               dev->sensor_xres = 1280;
-               dev->sensor_yres = 1024;
+               v4l2->sensor_xres = 1280;
+               v4l2->sensor_yres = 1024;
 
                em28xx_initialize_mt9m001(dev);
 
@@ -389,8 +389,8 @@ int em28xx_init_camera(struct em28xx *dev)
 
                break;
        case EM28XX_MT9M111:
-               dev->sensor_xres = 640;
-               dev->sensor_yres = 512;
+               v4l2->sensor_xres = 640;
+               v4l2->sensor_yres = 512;
 
                dev->board.xclk = EM28XX_XCLK_FREQUENCY_48MHZ;
                em28xx_write_reg(dev, EM28XX_R0F_XCLK, dev->board.xclk);
@@ -419,8 +419,8 @@ int em28xx_init_camera(struct em28xx *dev)
                 * - adjust bridge xclk
                 * - disable 16 bit (12 bit) output formats on high resolutions
                 */
-               dev->sensor_xres = 640;
-               dev->sensor_yres = 480;
+               v4l2->sensor_xres = 640;
+               v4l2->sensor_yres = 480;
 
                subdev =
                     v4l2_i2c_new_subdev_board(&dev->v4l2->v4l2_dev, adap,
index 03cfa3eeafc2edb30e0953af7bab522885fc8671..da7eb21f16b508fda3dcd46b240b2d87ba96595e 100644 (file)
@@ -144,8 +144,10 @@ static struct em28xx_fmt format[] = {
 /*FIXME: maxw should be dependent of alt mode */
 static inline unsigned int norm_maxw(struct em28xx *dev)
 {
+       struct em28xx_v4l2 *v4l2 = dev->v4l2;
+
        if (dev->board.is_webcam)
-               return dev->sensor_xres;
+               return v4l2->sensor_xres;
 
        if (dev->board.max_range_640_480)
                return 640;
@@ -158,7 +160,7 @@ static inline unsigned int norm_maxh(struct em28xx *dev)
        struct em28xx_v4l2 *v4l2 = dev->v4l2;
 
        if (dev->board.is_webcam)
-               return dev->sensor_yres;
+               return v4l2->sensor_yres;
 
        if (dev->board.max_range_640_480)
                return 480;
index af7e8ee1675641fed64c1f2e1367abaac3ab5180..59040fc21b10ca57e8ba5eafdad9e3eb647dc9d8 100644 (file)
@@ -519,6 +519,11 @@ struct em28xx_v4l2 {
        u8 vinmode;
        u8 vinctl;
 
+       /* Camera specific fields */
+       int sensor_xres;
+       int sensor_yres;
+       int sensor_xtal;
+
        struct em28xx_fmt *format;
        v4l2_std_id norm;       /* selected tv norm */
 
@@ -601,10 +606,7 @@ struct em28xx {
 
        struct em28xx_board board;
 
-       /* Webcam specific fields */
-       enum em28xx_sensor em28xx_sensor;
-       int sensor_xres, sensor_yres;
-       int sensor_xtal;
+       enum em28xx_sensor em28xx_sensor;       /* camera specific */
 
        /* Controls audio streaming */
        struct work_struct wq_trigger;  /* Trigger to start/stop audio for alsa module */