diff options
| author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-09-29 11:08:29 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:10 -0400 |
| commit | a31d2bb773f23f55cc6713f2d1a9b60977bb8f89 (patch) | |
| tree | 084e602056f1730df1dba2165da902298a73b922 | |
| parent | 9b0001913983de65af17eee8baf02283160f5a69 (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>
| -rw-r--r-- | Documentation/video4linux/CARDLIST.cx88 | 1 | ||||
| -rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 39 | ||||
| -rw-r--r-- | drivers/media/video/cx88/cx88-input.c | 1 | ||||
| -rw-r--r-- | drivers/media/video/cx88/cx88.h | 1 |
4 files changed, 41 insertions, 1 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88 index 075650c95fe6..50d0b1c559a9 100644 --- a/Documentation/video4linux/CARDLIST.cx88 +++ b/Documentation/video4linux/CARDLIST.cx88 | |||
| @@ -72,3 +72,4 @@ | |||
| 72 | 71 -> Omicom SS4 DVB-S/S2 PCI [A044:2011] | 72 | 71 -> Omicom SS4 DVB-S/S2 PCI [A044:2011] |
| 73 | 72 -> TBS 8920 DVB-S/S2 [8920:8888] | 73 | 72 -> TBS 8920 DVB-S/S2 [8920:8888] |
| 74 | 73 -> TeVii S420 DVB-S [d420:9022] | 74 | 73 -> TeVii S420 DVB-S [d420:9022] |
| 75 | 74 -> Prolink Pixelview Global Extreme [1554:4976] | ||
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index b5a25094c9e5..9f7210801524 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 13bc5d160761..8683d104de72 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 30b750ee8564..6420fb7615b1 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 | ||
| 231 | enum cx88_itype { | 232 | enum cx88_itype { |
| 232 | CX88_VMUX_COMPOSITE1 = 1, | 233 | CX88_VMUX_COMPOSITE1 = 1, |
