aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorDevin Heitmueller <devin.heitmueller@gmail.com>2008-07-26 10:04:33 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-26 12:18:17 -0400
commite14b3658a7651ffd9b1f407eaf07f4dde17ef1e7 (patch)
tree8c23ad5b0592b210bbdd2736b2c4067d95caae4f /drivers/media
parentb18559076a31ab0be2d980ce2beff8e32504e080 (diff)
V4L/DVB (8492): Add support for the ATI TV Wonder HD 600
em28xx-cards.c em28xx-dvb.c em28xx.h - Add support for the ATI TV Wonder HD 600, based on a 94 email exchange and USB traces provided by Ronnie Bailey Thanks to Ronnie Bailey <purevw@wtxs.net> for testing the changes Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c50
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c2
-rw-r--r--drivers/media/video/em28xx/em28xx.h1
3 files changed, 53 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index edf6f77862cc..81f9ff55588d 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -240,6 +240,52 @@ struct em28xx_board em28xx_boards[] = {
240 .amux = 1, 240 .amux = 1,
241 } }, 241 } },
242 }, 242 },
243 [EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600] = {
244 .name = "AMD ATI TV Wonder HD 600",
245 .vchannels = 3,
246 .tda9887_conf = TDA9887_PRESENT,
247 .tuner_type = TUNER_XC2028,
248 .mts_firmware = 1,
249 .has_12mhz_i2s = 1,
250 .has_dvb = 1,
251 .decoder = EM28XX_TVP5150,
252 .input = { {
253 .type = EM28XX_VMUX_TELEVISION,
254 .vmux = TVP5150_COMPOSITE0,
255 .amux = 0,
256 }, {
257 .type = EM28XX_VMUX_COMPOSITE1,
258 .vmux = TVP5150_COMPOSITE1,
259 .amux = 1,
260 }, {
261 .type = EM28XX_VMUX_SVIDEO,
262 .vmux = TVP5150_SVIDEO,
263 .amux = 1,
264 } },
265 },
266 [EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600] = {
267 .name = "AMD ATI TV Wonder HD 600",
268 .vchannels = 3,
269 .tda9887_conf = TDA9887_PRESENT,
270 .tuner_type = TUNER_XC2028,
271 .mts_firmware = 1,
272 .has_12mhz_i2s = 1,
273 .has_dvb = 1,
274 .decoder = EM28XX_TVP5150,
275 .input = { {
276 .type = EM28XX_VMUX_TELEVISION,
277 .vmux = TVP5150_COMPOSITE0,
278 .amux = 0,
279 }, {
280 .type = EM28XX_VMUX_COMPOSITE1,
281 .vmux = TVP5150_COMPOSITE1,
282 .amux = 1,
283 }, {
284 .type = EM28XX_VMUX_SVIDEO,
285 .vmux = TVP5150_SVIDEO,
286 .amux = 1,
287 } },
288 },
243 [EM2880_BOARD_TERRATEC_HYBRID_XS] = { 289 [EM2880_BOARD_TERRATEC_HYBRID_XS] = {
244 .name = "Terratec Hybrid XS", 290 .name = "Terratec Hybrid XS",
245 .vchannels = 3, 291 .vchannels = 3,
@@ -493,6 +539,8 @@ struct usb_device_id em28xx_id_table [] = {
493 .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS }, 539 .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS },
494 { USB_DEVICE(0x0ccd, 0x0047), 540 { USB_DEVICE(0x0ccd, 0x0047),
495 .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS }, 541 .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS },
542 { USB_DEVICE(0x0438, 0xb002),
543 .driver_info = EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600 },
496 { }, 544 { },
497}; 545};
498MODULE_DEVICE_TABLE(usb, em28xx_id_table); 546MODULE_DEVICE_TABLE(usb, em28xx_id_table);
@@ -608,6 +656,7 @@ void em28xx_pre_card_setup(struct em28xx *dev)
608 case EM2880_BOARD_TERRATEC_HYBRID_XS: 656 case EM2880_BOARD_TERRATEC_HYBRID_XS:
609 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 657 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
610 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: 658 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
659 case EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600:
611 em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1); 660 em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1);
612 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1); 661 em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1);
613 msleep(50); 662 msleep(50);
@@ -649,6 +698,7 @@ static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl)
649 break; 698 break;
650 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 699 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
651 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: 700 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
701 case EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600:
652 /* FIXME: Better to specify the needed IF */ 702 /* FIXME: Better to specify the needed IF */
653 ctl->demod = XC3028_FE_DEFAULT; 703 ctl->demod = XC3028_FE_DEFAULT;
654 break; 704 break;
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c
index 9727653b76ff..31475a245716 100644
--- a/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/drivers/media/video/em28xx/em28xx-dvb.c
@@ -6,6 +6,7 @@
6 (c) 2008 Devin Heitmueller <devin.heitmueller@gmail.com> 6 (c) 2008 Devin Heitmueller <devin.heitmueller@gmail.com>
7 - Fixes for the driver to properly work with HVR-950 7 - Fixes for the driver to properly work with HVR-950
8 - Fixes for the driver to properly work with Pinnacle PCTV HD Pro Stick 8 - Fixes for the driver to properly work with Pinnacle PCTV HD Pro Stick
9 - Fixes for the driver to properly work with AMD ATI TV Wonder HD 600
9 10
10 (c) 2008 Aidan Thornton <makosoft@googlemail.com> 11 (c) 2008 Aidan Thornton <makosoft@googlemail.com>
11 12
@@ -411,6 +412,7 @@ static int dvb_init(struct em28xx *dev)
411 switch (dev->model) { 412 switch (dev->model) {
412 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: 413 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
413 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: 414 case EM2880_BOARD_PINNACLE_PCTV_HD_PRO:
415 case EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600:
414 dvb->frontend = dvb_attach(lgdt330x_attach, 416 dvb->frontend = dvb_attach(lgdt330x_attach,
415 &em2880_lgdt3303_dev, 417 &em2880_lgdt3303_dev,
416 &dev->i2c_adap); 418 &dev->i2c_adap);
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 89842c5d64a1..9da877375cfb 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -58,6 +58,7 @@
58#define EM2880_BOARD_PINNACLE_PCTV_HD_PRO 17 58#define EM2880_BOARD_PINNACLE_PCTV_HD_PRO 17
59#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2 18 59#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2 18
60#define EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA 19 60#define EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA 19
61#define EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600 20
61 62
62/* Limits minimum and default number of buffers */ 63/* Limits minimum and default number of buffers */
63#define EM28XX_MIN_BUF 4 64#define EM28XX_MIN_BUF 4