summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx/em28xx-cards.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@brturbo.com.br>2005-11-09 06:38:43 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-09 16:56:30 +0100
commiteac94356c8f9f7d3854ed0290a406b13bfe8df4c (patch)
tree5dd31d7ecbb1d0d857972478a322ccb838dd668c /drivers/media/video/em28xx/em28xx-cards.c
parent[PATCH] V4L: 906: remote and more info for pctv cardbus whitespace cleanup (diff)
downloadlinux-eac94356c8f9f7d3854ed0290a406b13bfe8df4c.tar.xz
linux-eac94356c8f9f7d3854ed0290a406b13bfe8df4c.zip
[PATCH] V4L: 907: em28xx cleanups and fixes
- Em28xx cleanups and fixes. - Some cleanups and audio amux adjust. - em28xx will allways try, by default, the biggest size alt. - Fixes audio mux code. - Fixes some logs. - Adds support for digital output for WinTV USB2 board. Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 49107fd0c0d3..57779e63f35d 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -128,7 +128,7 @@ struct em28xx_board em28xx_boards[] = {
.input = {{
.type = EM28XX_VMUX_TELEVISION,
.vmux = 0,
- .amux = 0,
+ .amux = 6,
},{
.type = EM28XX_VMUX_SVIDEO,
.vmux = 2,
@@ -261,9 +261,11 @@ void em28xx_card_setup(struct em28xx *dev)
/* request some modules */
if (dev->model == EM2820_BOARD_HAUPPAUGE_WINTV_USB_2) {
struct tveeprom tv;
+ struct v4l2_audioout ao;
#ifdef CONFIG_MODULES
request_module("tveeprom");
request_module("ir-kbd-i2c");
+ request_module("msp3400");
#endif
/* Call first TVeeprom */
@@ -273,10 +275,13 @@ void em28xx_card_setup(struct em28xx *dev)
dev->tuner_type= tv.tuner_type;
if (tv.audio_processor == AUDIO_CHIP_MSP34XX) {
dev->has_msp34xx=1;
- } else dev->has_msp34xx=0;
- em28xx_write_regs_req(dev,0x06,0x00,"\x40",1);// Serial Bus Frequency Select Register
- em28xx_write_regs_req(dev,0x0f,0x00,"\x87",1);// XCLK Frequency Select Register
- em28xx_write_regs_req(dev,0x88,0x0d,"\xd0",1);
+ memset (&ao,0,sizeof(ao));
+
+ ao.index=2;
+ ao.mode=V4L2_AUDMODE_32BITS;
+ em28xx_i2c_call_clients(dev, VIDIOC_S_AUDOUT, &ao);
+ } else
+ dev->has_msp34xx=0;
}
}