Commit 527f09a9 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

V4L/DVB (12236): em28xx: stop abusing of board->decoder for sensor information

Instead of using em28xx board decoder field for storing sensor information,
let's use instead a separate field for it.

Also, as sensors are currently autodetected, there's no need of having
it at the boards description. So, move it to the main em28xx struct.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 8b220793
...@@ -454,7 +454,6 @@ struct em28xx_board em28xx_boards[] = { ...@@ -454,7 +454,6 @@ struct em28xx_board em28xx_boards[] = {
.name = "Silvercrest Webcam 1.3mpix", .name = "Silvercrest Webcam 1.3mpix",
.tuner_type = TUNER_ABSENT, .tuner_type = TUNER_ABSENT,
.is_webcam = 1, .is_webcam = 1,
.decoder = EM28XX_MT9V011,
.input = { { .input = { {
.type = EM28XX_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
...@@ -1737,6 +1736,7 @@ static int em28xx_hint_sensor(struct em28xx *dev) ...@@ -1737,6 +1736,7 @@ static int em28xx_hint_sensor(struct em28xx *dev)
case MT9V011_VERSION: case MT9V011_VERSION:
dev->model = EM2820_BOARD_SILVERCREST_WEBCAM; dev->model = EM2820_BOARD_SILVERCREST_WEBCAM;
sensor_name = "mt9v011"; sensor_name = "mt9v011";
dev->em28xx_sensor = EM28XX_MT9V011;
break; break;
default: default:
printk("Unknown Micron Sensor 0x%04x\n", be16_to_cpu(version)); printk("Unknown Micron Sensor 0x%04x\n", be16_to_cpu(version));
...@@ -2267,7 +2267,7 @@ void em28xx_card_setup(struct em28xx *dev) ...@@ -2267,7 +2267,7 @@ void em28xx_card_setup(struct em28xx *dev)
v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap, v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap,
"tvp5150", "tvp5150", tvp5150_addrs); "tvp5150", "tvp5150", tvp5150_addrs);
if (dev->board.decoder == EM28XX_MT9V011) if (dev->em28xx_sensor == EM28XX_MT9V011)
v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap, v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap,
"mt9v011", "mt9v011", mt9v011_addrs); "mt9v011", "mt9v011", mt9v011_addrs);
......
...@@ -358,9 +358,13 @@ struct em28xx_input { ...@@ -358,9 +358,13 @@ struct em28xx_input {
#define INPUT(nr) (&em28xx_boards[dev->model].input[nr]) #define INPUT(nr) (&em28xx_boards[dev->model].input[nr])
enum em28xx_decoder { enum em28xx_decoder {
EM28XX_NODECODER, EM28XX_NODECODER = 0,
EM28XX_TVP5150, EM28XX_TVP5150,
EM28XX_SAA711X, EM28XX_SAA711X,
};
enum em28xx_sensor {
EM28XX_NOSENSOR = 0,
EM28XX_MT9V011, EM28XX_MT9V011,
}; };
...@@ -474,6 +478,8 @@ struct em28xx { ...@@ -474,6 +478,8 @@ struct em28xx {
struct v4l2_device v4l2_dev; struct v4l2_device v4l2_dev;
struct em28xx_board board; struct em28xx_board board;
enum em28xx_sensor em28xx_sensor;
unsigned int stream_on:1; /* Locks streams */ unsigned int stream_on:1; /* Locks streams */
unsigned int has_audio_class:1; unsigned int has_audio_class:1;
unsigned int has_alsa_audio:1; unsigned int has_alsa_audio:1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment