mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
[media] em28xx: add support for DVB monitor led
Some devices have a LED to indicate when DVB capture started. Add support for it. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
02bc1f5574
commit
54e925498c
@ -619,6 +619,7 @@ EXPORT_SYMBOL_GPL(em28xx_find_led);
|
||||
int em28xx_capture_start(struct em28xx *dev, int start)
|
||||
{
|
||||
int rc;
|
||||
const struct em28xx_led *led = NULL;
|
||||
|
||||
if (dev->chip_id == CHIP_ID_EM2874 ||
|
||||
dev->chip_id == CHIP_ID_EM2884 ||
|
||||
@ -643,6 +644,8 @@ int em28xx_capture_start(struct em28xx *dev, int start)
|
||||
|
||||
/* Enable video capture */
|
||||
rc = em28xx_write_reg(dev, 0x48, 0x00);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
if (dev->mode == EM28XX_ANALOG_MODE)
|
||||
rc = em28xx_write_reg(dev,
|
||||
@ -650,6 +653,8 @@ int em28xx_capture_start(struct em28xx *dev, int start)
|
||||
else
|
||||
rc = em28xx_write_reg(dev,
|
||||
EM28XX_R12_VINENABLE, 0x37);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
msleep(6);
|
||||
} else {
|
||||
@ -658,19 +663,16 @@ int em28xx_capture_start(struct em28xx *dev, int start)
|
||||
}
|
||||
}
|
||||
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
/* Switch (explicitly controlled) analog capturing LED on/off */
|
||||
if (dev->mode == EM28XX_ANALOG_MODE) {
|
||||
const struct em28xx_led *led;
|
||||
if (dev->mode == EM28XX_ANALOG_MODE)
|
||||
led = em28xx_find_led(dev, EM28XX_LED_ANALOG_CAPTURING);
|
||||
if (led)
|
||||
em28xx_write_reg_bits(dev, led->gpio_reg,
|
||||
(!start ^ led->inverted) ?
|
||||
~led->gpio_mask : led->gpio_mask,
|
||||
led->gpio_mask);
|
||||
}
|
||||
else
|
||||
led = em28xx_find_led(dev, EM28XX_LED_DIGITAL_CAPTURING);
|
||||
|
||||
if (led)
|
||||
em28xx_write_reg_bits(dev, led->gpio_reg,
|
||||
(!start ^ led->inverted) ?
|
||||
~led->gpio_mask : led->gpio_mask,
|
||||
led->gpio_mask);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -401,6 +401,7 @@ enum em28xx_adecoder {
|
||||
|
||||
enum em28xx_led_role {
|
||||
EM28XX_LED_ANALOG_CAPTURING = 0,
|
||||
EM28XX_LED_DIGITAL_CAPTURING,
|
||||
EM28XX_LED_ILLUMINATION,
|
||||
EM28XX_NUM_LED_ROLES, /* must be the last */
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user