summaryrefslogtreecommitdiff
path: root/drivers/media/usb/em28xx/em28xx-cards.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2018-03-01 18:08:42 +0300
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2018-03-06 12:48:40 +0300
commitaa62980be47e1fe1f40cbaf0a80589193faa7ab9 (patch)
tree42deb70f97142889a31aa407bd1efc7a5a6e5438 /drivers/media/usb/em28xx/em28xx-cards.c
parent6cda90b63edd1d2b1446793e0fcb8b4a725f8ac5 (diff)
downloadlinux-aa62980be47e1fe1f40cbaf0a80589193faa7ab9.tar.xz
media: em28xx: stop rewriting device's struct
Writing at the device's struct is evil, as two em28xx devices may be using it. So, stop abusing it, storing the values inside struct em28xx_dev. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/usb/em28xx/em28xx-cards.c')
-rw-r--r--drivers/media/usb/em28xx/em28xx-cards.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 996e8994f4a6..bb6a84891bba 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -2712,6 +2712,8 @@ static inline void em28xx_set_xclk_i2c_speed(struct em28xx *dev)
static inline void em28xx_set_model(struct em28xx *dev)
{
dev->board = em28xx_boards[dev->model];
+ dev->has_msp34xx = dev->board.has_msp34xx;
+ dev->is_webcam = dev->board.is_webcam;
em28xx_set_xclk_i2c_speed(dev);
@@ -2871,7 +2873,7 @@ static int em28xx_hint_board(struct em28xx *dev)
{
int i;
- if (dev->board.is_webcam) {
+ if (dev->is_webcam) {
if (dev->em28xx_sensor == EM28XX_MT9V011) {
dev->model = EM2820_BOARD_SILVERCREST_WEBCAM;
} else if (dev->em28xx_sensor == EM28XX_MT9M001 ||
@@ -2963,11 +2965,11 @@ static void em28xx_card_setup(struct em28xx *dev)
* If the device can be a webcam, seek for a sensor.
* If sensor is not found, then it isn't a webcam.
*/
- if (dev->board.is_webcam) {
+ if (dev->is_webcam) {
em28xx_detect_sensor(dev);
if (dev->em28xx_sensor == EM28XX_NOSENSOR)
/* NOTE: error/unknown sensor/no sensor */
- dev->board.is_webcam = 0;
+ dev->is_webcam = 0;
}
switch (dev->model) {
@@ -3029,7 +3031,7 @@ static void em28xx_card_setup(struct em28xx *dev)
if (tv.audio_processor == TVEEPROM_AUDPROC_MSP) {
dev->i2s_speed = 2048000;
- dev->board.has_msp34xx = 1;
+ dev->has_msp34xx = 1;
}
break;
}
@@ -3742,7 +3744,7 @@ static int em28xx_usb_probe(struct usb_interface *interface,
}
if (usb_xfer_mode < 0) {
- if (dev->board.is_webcam)
+ if (dev->is_webcam)
try_bulk = 1;
else
try_bulk = 0;
@@ -3794,7 +3796,7 @@ static int em28xx_usb_probe(struct usb_interface *interface,
dev->dev_next->board.has_ir_i2c = 0; /* No IR for 2nd tuner */
if (usb_xfer_mode < 0) {
- if (dev->dev_next->board.is_webcam)
+ if (dev->dev_next->is_webcam)
try_bulk = 1;
else
try_bulk = 0;