aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2008-09-29 11:08:29 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-12 07:37:10 -0400
commita31d2bb773f23f55cc6713f2d1a9b60977bb8f89 (patch)
tree084e602056f1730df1dba2165da902298a73b922 /drivers/media
parent9b0001913983de65af17eee8baf02283160f5a69 (diff)
V4L/DVB (9062): Add support for Prolink Pixelview Global Extreme
Thanks to Sidney Matias <sidney.matias@gmail.com> for getting GPIO values and testing on this device. Cc: Sidney Matias <sidney.matias@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/cx88/cx88-cards.c39
-rw-r--r--drivers/media/video/cx88/cx88-input.c1
-rw-r--r--drivers/media/video/cx88/cx88.h1
3 files changed, 40 insertions, 1 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index b5a25094c9e..9f721080152 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1628,6 +1628,36 @@ static const struct cx88_board cx88_boards[] = {
1628 .gpio2 = 0x0cfb, 1628 .gpio2 = 0x0cfb,
1629 }, 1629 },
1630 }, 1630 },
1631 [CX88_BOARD_PROLINK_PV_GLOBAL_XTREME] = {
1632 .name = "Prolink Pixelview Global Extreme",
1633 .tuner_type = TUNER_XC2028,
1634 .tuner_addr = 0x61,
1635 .input = { {
1636 .type = CX88_VMUX_TELEVISION,
1637 .vmux = 0,
1638 .gpio0 = 0x04fb,
1639 .gpio1 = 0x04080,
1640 .gpio2 = 0x0cf7,
1641 }, {
1642 .type = CX88_VMUX_COMPOSITE1,
1643 .vmux = 1,
1644 .gpio0 = 0x04fb,
1645 .gpio1 = 0x04080,
1646 .gpio2 = 0x0cfb,
1647 }, {
1648 .type = CX88_VMUX_SVIDEO,
1649 .vmux = 2,
1650 .gpio0 = 0x04fb,
1651 .gpio1 = 0x04080,
1652 .gpio2 = 0x0cfb,
1653 } },
1654 .radio = {
1655 .type = CX88_RADIO,
1656 .gpio0 = 0x04ff,
1657 .gpio1 = 0x04080,
1658 .gpio2 = 0x0cf7,
1659 },
1660 },
1631 /* Both radio, analog and ATSC work with this board. 1661 /* Both radio, analog and ATSC work with this board.
1632 However, for analog to work, s5h1409 gate should be open, 1662 However, for analog to work, s5h1409 gate should be open,
1633 otherwise, tuner-xc3028 won't be detected. 1663 otherwise, tuner-xc3028 won't be detected.
@@ -2126,6 +2156,10 @@ static const struct cx88_subid cx88_subids[] = {
2126 .subdevice = 0x4935, 2156 .subdevice = 0x4935,
2127 .card = CX88_BOARD_PROLINK_PV_8000GT, 2157 .card = CX88_BOARD_PROLINK_PV_8000GT,
2128 }, { 2158 }, {
2159 .subvendor = 0x1554,
2160 .subdevice = 0x4976,
2161 .card = CX88_BOARD_PROLINK_PV_GLOBAL_XTREME,
2162 }, {
2129 .subvendor = 0x17de, 2163 .subvendor = 0x17de,
2130 .subdevice = 0x08c1, 2164 .subdevice = 0x08c1,
2131 .card = CX88_BOARD_KWORLD_ATSC_120, 2165 .card = CX88_BOARD_KWORLD_ATSC_120,
@@ -2429,6 +2463,7 @@ static int cx88_xc2028_tuner_callback(struct cx88_core *core,
2429 return cx88_xc3028_geniatech_tuner_callback(core, 2463 return cx88_xc3028_geniatech_tuner_callback(core,
2430 command, arg); 2464 command, arg);
2431 case CX88_BOARD_PROLINK_PV_8000GT: 2465 case CX88_BOARD_PROLINK_PV_8000GT:
2466 case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
2432 return cx88_pv_8000gt_callback(core, command, arg); 2467 return cx88_pv_8000gt_callback(core, command, arg);
2433 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO: 2468 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
2434 case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO: 2469 case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
@@ -2582,6 +2617,7 @@ static void cx88_card_setup_pre_i2c(struct cx88_core *core)
2582 udelay(1000); 2617 udelay(1000);
2583 break; 2618 break;
2584 2619
2620 case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
2585 case CX88_BOARD_PROLINK_PV_8000GT: 2621 case CX88_BOARD_PROLINK_PV_8000GT:
2586 cx_write(MO_GP2_IO, 0xcf7); 2622 cx_write(MO_GP2_IO, 0xcf7);
2587 mdelay(50); 2623 mdelay(50);
@@ -2629,9 +2665,10 @@ void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl)
2629 case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO: 2665 case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
2630 ctl->demod = XC3028_FE_OREN538; 2666 ctl->demod = XC3028_FE_OREN538;
2631 break; 2667 break;
2668 case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
2632 case CX88_BOARD_PROLINK_PV_8000GT: 2669 case CX88_BOARD_PROLINK_PV_8000GT:
2633 /* 2670 /*
2634 * This board uses non-MTS firmware 2671 * Those boards uses non-MTS firmware
2635 */ 2672 */
2636 break; 2673 break;
2637 default: 2674 default:
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 13bc5d16076..8683d104de7 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -261,6 +261,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
261 ir->polling = 1; /* ms */ 261 ir->polling = 1; /* ms */
262 break; 262 break;
263 case CX88_BOARD_PROLINK_PV_8000GT: 263 case CX88_BOARD_PROLINK_PV_8000GT:
264 case CX88_BOARD_PROLINK_PV_GLOBAL_XTREME:
264 ir_codes = ir_codes_pixelview_new; 265 ir_codes = ir_codes_pixelview_new;
265 ir->gpio_addr = MO_GP1_IO; 266 ir->gpio_addr = MO_GP1_IO;
266 ir->mask_keycode = 0x3f; 267 ir->mask_keycode = 0x3f;
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 30b750ee856..6420fb7615b 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -227,6 +227,7 @@ extern struct sram_channel cx88_sram_channels[];
227#define CX88_BOARD_OMICOM_SS4_PCI 71 227#define CX88_BOARD_OMICOM_SS4_PCI 71
228#define CX88_BOARD_TBS_8920 72 228#define CX88_BOARD_TBS_8920 72
229#define CX88_BOARD_TEVII_S420 73 229#define CX88_BOARD_TEVII_S420 73
230#define CX88_BOARD_PROLINK_PV_GLOBAL_XTREME 74
230 231
231enum cx88_itype { 232enum cx88_itype {
232 CX88_VMUX_COMPOSITE1 = 1, 233 CX88_VMUX_COMPOSITE1 = 1,