From 202cd8f4befd4a46b4e9ed3766836ba4fc412527 Mon Sep 17 00:00:00 2001 From: Frank Schaefer Date: Mon, 24 Mar 2014 16:33:19 -0300 Subject: [PATCH] upstream: [media] em28xx: move sensor parameter fields from struct em28xx to struct v4l2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- drivers/media/usb/em28xx/em28xx-camera.c | 20 ++++++++++---------- drivers/media/usb/em28xx/em28xx-video.c | 6 ++++-- drivers/media/usb/em28xx/em28xx.h | 10 ++++++---- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/drivers/media/usb/em28xx/em28xx-camera.c b/drivers/media/usb/em28xx/em28xx-camera.c index 475df77..2d78803 100644 --- a/drivers/media/usb/em28xx/em28xx-camera.c +++ b/drivers/media/usb/em28xx/em28xx-camera.c @@ -348,8 +348,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 @@ -362,8 +362,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)) { @@ -377,8 +377,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); @@ -388,8 +388,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); @@ -418,8 +418,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, diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c index efc5ffb..6b52e55 100644 --- a/drivers/media/usb/em28xx/em28xx-video.c +++ b/drivers/media/usb/em28xx/em28xx-video.c @@ -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; diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h index af7e8ee..59040fc 100644 --- a/drivers/media/usb/em28xx/em28xx.h +++ b/drivers/media/usb/em28xx/em28xx.h @@ -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 */ -- 2.7.4