diff options
author | Anca Emanuel <anca.emanuel@gmail.com> | 2013-09-13 10:28:12 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2013-10-14 06:19:59 -0400 |
commit | 642ca1a0917be38e5db932a1524de748076bb087 (patch) | |
tree | 9b970330b1fe2d1e1a88c1fa632f940b3a6d38df | |
parent | b00ade2bb1f9ac6b25c6c8ac48ed82a1c43c5801 (diff) |
[media] cx23885: Add Leadtek Winfast PxPVR2200
Tested:
Composite: http://imgur.com/Rb1TCF3
TV: http://imgur.com/KNrfsmv
Firmware used: xc3028-v27.fw
Not tested: audio, component, s-video, mpeg2 encoder, FM radio.
For audio, it uses an CD style cable to connect to the analog "CD_IN" on the motherboard.
I didn't found how to unmute it (alsamixer do not show an CD or AUX channel).
Signed-off-by: Anca Emanuel <anca.emanuel@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r-- | drivers/media/pci/cx23885/cx23885-cards.c | 41 | ||||
-rw-r--r-- | drivers/media/pci/cx23885/cx23885-video.c | 3 | ||||
-rw-r--r-- | drivers/media/pci/cx23885/cx23885.h | 1 |
3 files changed, 44 insertions, 1 deletions
diff --git a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c index b3ae43da2598..79f20c8c842e 100644 --- a/drivers/media/pci/cx23885/cx23885-cards.c +++ b/drivers/media/pci/cx23885/cx23885-cards.c | |||
@@ -223,6 +223,39 @@ struct cx23885_board cx23885_boards[] = { | |||
223 | .name = "Leadtek Winfast PxDVR3200 H", | 223 | .name = "Leadtek Winfast PxDVR3200 H", |
224 | .portc = CX23885_MPEG_DVB, | 224 | .portc = CX23885_MPEG_DVB, |
225 | }, | 225 | }, |
226 | [CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200] = { | ||
227 | .name = "Leadtek Winfast PxPVR2200", | ||
228 | .porta = CX23885_ANALOG_VIDEO, | ||
229 | .tuner_type = TUNER_XC2028, | ||
230 | .tuner_addr = 0x61, | ||
231 | .tuner_bus = 1, | ||
232 | .input = {{ | ||
233 | .type = CX23885_VMUX_TELEVISION, | ||
234 | .vmux = CX25840_VIN2_CH1 | | ||
235 | CX25840_VIN5_CH2, | ||
236 | .amux = CX25840_AUDIO8, | ||
237 | .gpio0 = 0x704040, | ||
238 | }, { | ||
239 | .type = CX23885_VMUX_COMPOSITE1, | ||
240 | .vmux = CX25840_COMPOSITE1, | ||
241 | .amux = CX25840_AUDIO7, | ||
242 | .gpio0 = 0x704040, | ||
243 | }, { | ||
244 | .type = CX23885_VMUX_SVIDEO, | ||
245 | .vmux = CX25840_SVIDEO_LUMA3 | | ||
246 | CX25840_SVIDEO_CHROMA4, | ||
247 | .amux = CX25840_AUDIO7, | ||
248 | .gpio0 = 0x704040, | ||
249 | }, { | ||
250 | .type = CX23885_VMUX_COMPONENT, | ||
251 | .vmux = CX25840_VIN7_CH1 | | ||
252 | CX25840_VIN6_CH2 | | ||
253 | CX25840_VIN8_CH3 | | ||
254 | CX25840_COMPONENT_ON, | ||
255 | .amux = CX25840_AUDIO7, | ||
256 | .gpio0 = 0x704040, | ||
257 | } }, | ||
258 | }, | ||
226 | [CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000] = { | 259 | [CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000] = { |
227 | .name = "Leadtek Winfast PxDVR3200 H XC4000", | 260 | .name = "Leadtek Winfast PxDVR3200 H XC4000", |
228 | .porta = CX23885_ANALOG_VIDEO, | 261 | .porta = CX23885_ANALOG_VIDEO, |
@@ -698,6 +731,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
698 | .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H, | 731 | .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H, |
699 | }, { | 732 | }, { |
700 | .subvendor = 0x107d, | 733 | .subvendor = 0x107d, |
734 | .subdevice = 0x6f21, | ||
735 | .card = CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200, | ||
736 | }, { | ||
737 | .subvendor = 0x107d, | ||
701 | .subdevice = 0x6f39, | 738 | .subdevice = 0x6f39, |
702 | .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000, | 739 | .card = CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000, |
703 | }, { | 740 | }, { |
@@ -1090,6 +1127,7 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg) | |||
1090 | case CX23885_BOARD_HAUPPAUGE_HVR1500: | 1127 | case CX23885_BOARD_HAUPPAUGE_HVR1500: |
1091 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: | 1128 | case CX23885_BOARD_HAUPPAUGE_HVR1500Q: |
1092 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: | 1129 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: |
1130 | case CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200: | ||
1093 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: | 1131 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: |
1094 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 1132 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
1095 | case CX23885_BOARD_COMPRO_VIDEOMATE_E800: | 1133 | case CX23885_BOARD_COMPRO_VIDEOMATE_E800: |
@@ -1255,6 +1293,7 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
1255 | cx_set(GP0_IO, 0x000f000f); | 1293 | cx_set(GP0_IO, 0x000f000f); |
1256 | break; | 1294 | break; |
1257 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: | 1295 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: |
1296 | case CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200: | ||
1258 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: | 1297 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: |
1259 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 1298 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
1260 | case CX23885_BOARD_COMPRO_VIDEOMATE_E800: | 1299 | case CX23885_BOARD_COMPRO_VIDEOMATE_E800: |
@@ -1769,6 +1808,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
1769 | case CX23885_BOARD_HAUPPAUGE_HVR1700: | 1808 | case CX23885_BOARD_HAUPPAUGE_HVR1700: |
1770 | case CX23885_BOARD_HAUPPAUGE_HVR1400: | 1809 | case CX23885_BOARD_HAUPPAUGE_HVR1400: |
1771 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: | 1810 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: |
1811 | case CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200: | ||
1772 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: | 1812 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: |
1773 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 1813 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
1774 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 1814 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
@@ -1798,6 +1838,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
1798 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: | 1838 | case CX23885_BOARD_HAUPPAUGE_HVR1800lp: |
1799 | case CX23885_BOARD_HAUPPAUGE_HVR1700: | 1839 | case CX23885_BOARD_HAUPPAUGE_HVR1700: |
1800 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: | 1840 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H: |
1841 | case CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200: | ||
1801 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: | 1842 | case CX23885_BOARD_LEADTEK_WINFAST_PXDVR3200_H_XC4000: |
1802 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 1843 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
1803 | case CX23885_BOARD_NETUP_DUAL_DVBS2_CI: | 1844 | case CX23885_BOARD_NETUP_DUAL_DVBS2_CI: |
diff --git a/drivers/media/pci/cx23885/cx23885-video.c b/drivers/media/pci/cx23885/cx23885-video.c index 161686832b20..7891f34157d1 100644 --- a/drivers/media/pci/cx23885/cx23885-video.c +++ b/drivers/media/pci/cx23885/cx23885-video.c | |||
@@ -1865,7 +1865,8 @@ int cx23885_video_register(struct cx23885_dev *dev) | |||
1865 | 1865 | ||
1866 | v4l2_subdev_call(sd, tuner, s_type_addr, &tun_setup); | 1866 | v4l2_subdev_call(sd, tuner, s_type_addr, &tun_setup); |
1867 | 1867 | ||
1868 | if (dev->board == CX23885_BOARD_LEADTEK_WINFAST_PXTV1200) { | 1868 | if ((dev->board == CX23885_BOARD_LEADTEK_WINFAST_PXTV1200) || |
1869 | (dev->board == CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200)) { | ||
1869 | struct xc2028_ctrl ctrl = { | 1870 | struct xc2028_ctrl ctrl = { |
1870 | .fname = XC2028_DEFAULT_FIRMWARE, | 1871 | .fname = XC2028_DEFAULT_FIRMWARE, |
1871 | .max_len = 64 | 1872 | .max_len = 64 |
diff --git a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h index 2eb23d87c752..0fa4048ab872 100644 --- a/drivers/media/pci/cx23885/cx23885.h +++ b/drivers/media/pci/cx23885/cx23885.h | |||
@@ -95,6 +95,7 @@ | |||
95 | #define CX23885_BOARD_AVERMEDIA_HC81R 39 | 95 | #define CX23885_BOARD_AVERMEDIA_HC81R 39 |
96 | #define CX23885_BOARD_TBS_6981 40 | 96 | #define CX23885_BOARD_TBS_6981 40 |
97 | #define CX23885_BOARD_TBS_6980 41 | 97 | #define CX23885_BOARD_TBS_6980 41 |
98 | #define CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200 42 | ||
98 | 99 | ||
99 | #define GPIO_0 0x00000001 | 100 | #define GPIO_0 0x00000001 |
100 | #define GPIO_1 0x00000002 | 101 | #define GPIO_1 0x00000002 |