Loading drivers/media/video/em28xx/em28xx-cards.c +9 −11 Original line number Diff line number Diff line Loading @@ -180,6 +180,7 @@ struct em28xx_board em28xx_boards[] = { .tuner_type = TUNER_XC2028, .has_tuner = 1, .mts_firmware = 1, .has_12mhz_i2s = 1, .decoder = EM28XX_TVP5150, .input = { { .type = EM28XX_VMUX_TELEVISION, Loading Loading @@ -641,6 +642,7 @@ static void em28xx_set_model(struct em28xx *dev) dev->decoder = em28xx_boards[dev->model].decoder; dev->video_inputs = em28xx_boards[dev->model].vchannels; dev->analog_gpio = em28xx_boards[dev->model].analog_gpio; dev->has_12mhz_i2s = em28xx_boards[dev->model].has_12mhz_i2s; if (!em28xx_boards[dev->model].has_tuner) dev->tuner_type = UNSET; Loading Loading @@ -676,10 +678,6 @@ void em28xx_card_setup(struct em28xx *dev) if (tv.has_ir) request_module("ir-kbd-i2c"); #endif /* enable audio 12 mhz i2s */ em28xx_write_regs(dev, XCLK_REG, "\xa7", 1); msleep(10); break; } case EM2820_BOARD_KWORLD_PVRTV2800RF: Loading drivers/media/video/em28xx/em28xx-core.c +9 −2 Original line number Diff line number Diff line Loading @@ -332,6 +332,7 @@ int em28xx_audio_analog_set(struct em28xx *dev) { int ret; char s[2] = { 0x00, 0x00 }; u8 xclk = 0x07; s[0] |= 0x1f - dev->volume; s[1] |= 0x1f - dev->volume; Loading @@ -342,10 +343,16 @@ int em28xx_audio_analog_set(struct em28xx *dev) if (ret < 0) return ret; ret = em28xx_write_reg_bits(dev, XCLK_REG, dev->mute ? 0x00 : 0x80, 0x80); if (dev->has_12mhz_i2s) xclk |= 0x20; if (!dev->mute) xclk |= 0x80; ret = em28xx_write_reg_bits(dev, XCLK_REG, xclk, 0xa7); if (ret < 0) return ret; msleep(10); /* Selects the proper audio input */ ret = em28xx_set_audio_source(dev); Loading drivers/media/video/em28xx/em28xx-video.c +3 −4 Original line number Diff line number Diff line Loading @@ -125,10 +125,6 @@ static int em28xx_config(struct em28xx *dev) dev->mute = 1; /* maybe not the right place... */ dev->volume = 0x1f; /* Init XCLK_REG, audio muted */ dev->em28xx_write_regs(dev, XCLK_REG, "\x87", 1); em28xx_audio_analog_set(dev); em28xx_outfmt_set_yuv422(dev); em28xx_colorlevels_set_default(dev); em28xx_compression_disable(dev); Loading Loading @@ -1688,6 +1684,9 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, /* Do board specific init and eeprom reading */ em28xx_card_setup(dev); /* Configure audio */ em28xx_audio_analog_set(dev); /* configure the device */ em28xx_config_i2c(dev); Loading drivers/media/video/em28xx/em28xx.h +3 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,8 @@ struct em28xx_board { unsigned int has_tuner:1; unsigned int has_msp34xx:1; unsigned int mts_firmware:1; unsigned int has_12mhz_i2s:1; unsigned int analog_gpio; enum em28xx_decoder decoder; Loading Loading @@ -247,6 +249,7 @@ struct em28xx { unsigned int has_tda9887:1; unsigned int stream_on:1; /* Locks streams */ unsigned int has_audio_class:1; unsigned int has_12mhz_i2s:1; int video_inputs; /* number of video inputs */ struct list_head devlist; Loading Loading
drivers/media/video/em28xx/em28xx-cards.c +9 −11 Original line number Diff line number Diff line Loading @@ -180,6 +180,7 @@ struct em28xx_board em28xx_boards[] = { .tuner_type = TUNER_XC2028, .has_tuner = 1, .mts_firmware = 1, .has_12mhz_i2s = 1, .decoder = EM28XX_TVP5150, .input = { { .type = EM28XX_VMUX_TELEVISION, Loading Loading @@ -641,6 +642,7 @@ static void em28xx_set_model(struct em28xx *dev) dev->decoder = em28xx_boards[dev->model].decoder; dev->video_inputs = em28xx_boards[dev->model].vchannels; dev->analog_gpio = em28xx_boards[dev->model].analog_gpio; dev->has_12mhz_i2s = em28xx_boards[dev->model].has_12mhz_i2s; if (!em28xx_boards[dev->model].has_tuner) dev->tuner_type = UNSET; Loading Loading @@ -676,10 +678,6 @@ void em28xx_card_setup(struct em28xx *dev) if (tv.has_ir) request_module("ir-kbd-i2c"); #endif /* enable audio 12 mhz i2s */ em28xx_write_regs(dev, XCLK_REG, "\xa7", 1); msleep(10); break; } case EM2820_BOARD_KWORLD_PVRTV2800RF: Loading
drivers/media/video/em28xx/em28xx-core.c +9 −2 Original line number Diff line number Diff line Loading @@ -332,6 +332,7 @@ int em28xx_audio_analog_set(struct em28xx *dev) { int ret; char s[2] = { 0x00, 0x00 }; u8 xclk = 0x07; s[0] |= 0x1f - dev->volume; s[1] |= 0x1f - dev->volume; Loading @@ -342,10 +343,16 @@ int em28xx_audio_analog_set(struct em28xx *dev) if (ret < 0) return ret; ret = em28xx_write_reg_bits(dev, XCLK_REG, dev->mute ? 0x00 : 0x80, 0x80); if (dev->has_12mhz_i2s) xclk |= 0x20; if (!dev->mute) xclk |= 0x80; ret = em28xx_write_reg_bits(dev, XCLK_REG, xclk, 0xa7); if (ret < 0) return ret; msleep(10); /* Selects the proper audio input */ ret = em28xx_set_audio_source(dev); Loading
drivers/media/video/em28xx/em28xx-video.c +3 −4 Original line number Diff line number Diff line Loading @@ -125,10 +125,6 @@ static int em28xx_config(struct em28xx *dev) dev->mute = 1; /* maybe not the right place... */ dev->volume = 0x1f; /* Init XCLK_REG, audio muted */ dev->em28xx_write_regs(dev, XCLK_REG, "\x87", 1); em28xx_audio_analog_set(dev); em28xx_outfmt_set_yuv422(dev); em28xx_colorlevels_set_default(dev); em28xx_compression_disable(dev); Loading Loading @@ -1688,6 +1684,9 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, /* Do board specific init and eeprom reading */ em28xx_card_setup(dev); /* Configure audio */ em28xx_audio_analog_set(dev); /* configure the device */ em28xx_config_i2c(dev); Loading
drivers/media/video/em28xx/em28xx.h +3 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,8 @@ struct em28xx_board { unsigned int has_tuner:1; unsigned int has_msp34xx:1; unsigned int mts_firmware:1; unsigned int has_12mhz_i2s:1; unsigned int analog_gpio; enum em28xx_decoder decoder; Loading Loading @@ -247,6 +249,7 @@ struct em28xx { unsigned int has_tda9887:1; unsigned int stream_on:1; /* Locks streams */ unsigned int has_audio_class:1; unsigned int has_12mhz_i2s:1; int video_inputs; /* number of video inputs */ struct list_head devlist; Loading