diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2018-03-01 18:08:42 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2018-03-06 12:48:40 +0300 |
commit | aa62980be47e1fe1f40cbaf0a80589193faa7ab9 (patch) | |
tree | 42deb70f97142889a31aa407bd1efc7a5a6e5438 /drivers/media/usb/em28xx/em28xx-cards.c | |
parent | 6cda90b63edd1d2b1446793e0fcb8b4a725f8ac5 (diff) | |
download | linux-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.c | 14 |
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; |