diff options
author | Devin Heitmueller <devin.heitmueller@gmail.com> | 2008-06-04 12:43:46 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-20 06:08:19 -0400 |
commit | 4fd305b2a2c4d16e8d4ebc95c84f946edd3385c5 (patch) | |
tree | dbc539d5d4391e66ce7e4383c3f23b462ea672c1 /drivers/media/video | |
parent | 72937890f98167cbe626f24df2c16d6b63e3e357 (diff) |
V4L/DVB (7992): Add support for Pinnacle PCTV HD Pro stick (the older variant 2304:0227)
Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 27 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 2 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 1 |
3 files changed, 30 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 8cbda43727c3..c22c90301d85 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -196,6 +196,29 @@ struct em28xx_board em28xx_boards[] = { | |||
196 | .amux = 1, | 196 | .amux = 1, |
197 | } }, | 197 | } }, |
198 | }, | 198 | }, |
199 | [EM2880_BOARD_PINNACLE_PCTV_HD_PRO] = { | ||
200 | .name = "Pinnacle PCTV HD Pro Stick", | ||
201 | .vchannels = 3, | ||
202 | .tda9887_conf = TDA9887_PRESENT, | ||
203 | .tuner_type = TUNER_XC2028, | ||
204 | .mts_firmware = 1, | ||
205 | .has_12mhz_i2s = 1, | ||
206 | .has_dvb = 1, | ||
207 | .decoder = EM28XX_TVP5150, | ||
208 | .input = { { | ||
209 | .type = EM28XX_VMUX_TELEVISION, | ||
210 | .vmux = TVP5150_COMPOSITE0, | ||
211 | .amux = 0, | ||
212 | }, { | ||
213 | .type = EM28XX_VMUX_COMPOSITE1, | ||
214 | .vmux = TVP5150_COMPOSITE1, | ||
215 | .amux = 1, | ||
216 | }, { | ||
217 | .type = EM28XX_VMUX_SVIDEO, | ||
218 | .vmux = TVP5150_SVIDEO, | ||
219 | .amux = 1, | ||
220 | } }, | ||
221 | }, | ||
199 | [EM2880_BOARD_TERRATEC_HYBRID_XS] = { | 222 | [EM2880_BOARD_TERRATEC_HYBRID_XS] = { |
200 | .name = "Terratec Hybrid XS", | 223 | .name = "Terratec Hybrid XS", |
201 | .vchannels = 3, | 224 | .vchannels = 3, |
@@ -417,6 +440,8 @@ struct usb_device_id em28xx_id_table [] = { | |||
417 | .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, | 440 | .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, |
418 | { USB_DEVICE(0x2304, 0x021a), | 441 | { USB_DEVICE(0x2304, 0x021a), |
419 | .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, | 442 | .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, |
443 | { USB_DEVICE(0x2304, 0x0227), | ||
444 | .driver_info = EM2880_BOARD_PINNACLE_PCTV_HD_PRO }, | ||
420 | { USB_DEVICE(0x2040, 0x6500), | 445 | { USB_DEVICE(0x2040, 0x6500), |
421 | .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 }, | 446 | .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 }, |
422 | { USB_DEVICE(0x2040, 0x6502), | 447 | { USB_DEVICE(0x2040, 0x6502), |
@@ -544,6 +569,7 @@ void em28xx_pre_card_setup(struct em28xx *dev) | |||
544 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: | 569 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: |
545 | case EM2880_BOARD_TERRATEC_HYBRID_XS: | 570 | case EM2880_BOARD_TERRATEC_HYBRID_XS: |
546 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: | 571 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: |
572 | case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: | ||
547 | em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1); | 573 | em28xx_write_regs(dev, EM28XX_R0F_XCLK, "\x27", 1); |
548 | em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1); | 574 | em28xx_write_regs(dev, EM28XX_R06_I2C_CLK, "\x40", 1); |
549 | msleep(50); | 575 | msleep(50); |
@@ -577,6 +603,7 @@ static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) | |||
577 | ctl->demod = XC3028_FE_ZARLINK456; | 603 | ctl->demod = XC3028_FE_ZARLINK456; |
578 | break; | 604 | break; |
579 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: | 605 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: |
606 | case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: | ||
580 | /* FIXME: Better to specify the needed IF */ | 607 | /* FIXME: Better to specify the needed IF */ |
581 | ctl->demod = XC3028_FE_DEFAULT; | 608 | ctl->demod = XC3028_FE_DEFAULT; |
582 | break; | 609 | break; |
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index 0b2333ee07f8..9327d78fcf43 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
@@ -5,6 +5,7 @@ | |||
5 | 5 | ||
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 | 9 | ||
9 | (c) 2008 Aidan Thornton <makosoft@googlemail.com> | 10 | (c) 2008 Aidan Thornton <makosoft@googlemail.com> |
10 | 11 | ||
@@ -399,6 +400,7 @@ static int dvb_init(struct em28xx *dev) | |||
399 | /* init frontend */ | 400 | /* init frontend */ |
400 | switch (dev->model) { | 401 | switch (dev->model) { |
401 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: | 402 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: |
403 | case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: | ||
402 | dvb->frontend = dvb_attach(lgdt330x_attach, | 404 | dvb->frontend = dvb_attach(lgdt330x_attach, |
403 | &em2880_lgdt3303_dev, | 405 | &em2880_lgdt3303_dev, |
404 | &dev->i2c_adap); | 406 | &dev->i2c_adap); |
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h index 002f170b211a..c3b5f460b211 100644 --- a/drivers/media/video/em28xx/em28xx.h +++ b/drivers/media/video/em28xx/em28xx.h | |||
@@ -55,6 +55,7 @@ | |||
55 | #define EM2820_BOARD_PROLINK_PLAYTV_USB2 14 | 55 | #define EM2820_BOARD_PROLINK_PLAYTV_USB2 14 |
56 | #define EM2800_BOARD_VGEAR_POCKETTV 15 | 56 | #define EM2800_BOARD_VGEAR_POCKETTV 15 |
57 | #define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 16 | 57 | #define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 16 |
58 | #define EM2880_BOARD_PINNACLE_PCTV_HD_PRO 17 | ||
58 | 59 | ||
59 | /* Limits minimum and default number of buffers */ | 60 | /* Limits minimum and default number of buffers */ |
60 | #define EM28XX_MIN_BUF 4 | 61 | #define EM28XX_MIN_BUF 4 |