aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevin Heitmueller <devin.heitmueller@gmail.com>2008-06-04 12:43:46 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:08:19 -0400
commit4fd305b2a2c4d16e8d4ebc95c84f946edd3385c5 (patch)
treedbc539d5d4391e66ce7e4383c3f23b462ea672c1
parent72937890f98167cbe626f24df2c16d6b63e3e357 (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>
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c27
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c2
-rw-r--r--drivers/media/video/em28xx/em28xx.h1
4 files changed, 31 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index 1d6a245c828f..5d9d366038ff 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -15,3 +15,4 @@
15 14 -> Pixelview Prolink PlayTV USB 2.0 (em2820/em2840) 15 14 -> Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
16 15 -> V-Gear PocketTV (em2800) 16 15 -> V-Gear PocketTV (em2800)
17 16 -> Hauppauge WinTV HVR 950 (em2880) [2040:6513,2040:6517,2040:651b,2040:651f] 17 16 -> Hauppauge WinTV HVR 950 (em2880) [2040:6513,2040:6517,2040:651b,2040:651f]
18 17 -> Pinnacle PCTV HD Pro Stick (em2880) [2304:0227]
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