[media] em28xx: move sensor parameter fields from struct em28xx to struct v4l2

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>
This commit is contained in:
Frank Schaefer 2014-03-24 16:33:19 -03:00 committed by Mauro Carvalho Chehab
parent 58159171c7
commit d7dc18da63
3 changed files with 20 additions and 16 deletions

View 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,

View 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;

View 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 */