aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88
diff options
context:
space:
mode:
authorVlastimil Labsky <vlasta.labsky@gmail.com>2009-08-10 21:15:54 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:18:50 -0400
commit4d14c833c0d5f926721da1e0b07287ab8b64f0ba (patch)
treec0c12a228ec45ce9ad2fd7b08daa99649cb5a92c /drivers/media/video/cx88
parentbd0eb12f61fef7f500e374b8d5068e7556f61901 (diff)
V4L/DVB (12439): cx88: add support for WinFast DTV2000H rev. J
I updated and simplyfied patch from Zbynek Hrabovsky for recent kernel. It enables autodetection of card, sound in analog TV , sound in FM radio and switching between antenna and cable RF input. Radio tuner still doesn't work, I don't even know how it works. Some guys wrote me that FM radio works with TV tuner used instead of radio part (symlink video0 -> radio0). Cc: Gerd Knorr <kraxel@bytesex.org> Signed-off-by: Vlastimil Labsky <vlasta.labsky@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88')
-rw-r--r--drivers/media/video/cx88/cx88-cards.c49
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c1
-rw-r--r--drivers/media/video/cx88/cx88-input.c1
-rw-r--r--drivers/media/video/cx88/cx88.h1
4 files changed, 52 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 39465301ec94..43aa7e06e5bc 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1283,6 +1283,51 @@ static const struct cx88_board cx88_boards[] = {
1283 }, 1283 },
1284 .mpeg = CX88_MPEG_DVB, 1284 .mpeg = CX88_MPEG_DVB,
1285 }, 1285 },
1286 [CX88_BOARD_WINFAST_DTV2000H_J] = {
1287 .name = "WinFast DTV2000 H rev. J",
1288 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
1289 .radio_type = UNSET,
1290 .tuner_addr = ADDR_UNSET,
1291 .radio_addr = ADDR_UNSET,
1292 .tda9887_conf = TDA9887_PRESENT,
1293 .input = {{
1294 .type = CX88_VMUX_TELEVISION,
1295 .vmux = 0,
1296 .gpio0 = 0x00017300,
1297 .gpio1 = 0x00008207,
1298 .gpio2 = 0x00000000,
1299 .gpio3 = 0x02000000,
1300 },{
1301 .type = CX88_VMUX_TELEVISION,
1302 .vmux = 0,
1303 .gpio0 = 0x00018300,
1304 .gpio1 = 0x0000f207,
1305 .gpio2 = 0x00017304,
1306 .gpio3 = 0x02000000,
1307 },{
1308 .type = CX88_VMUX_COMPOSITE1,
1309 .vmux = 1,
1310 .gpio0 = 0x00018301,
1311 .gpio1 = 0x0000f207,
1312 .gpio2 = 0x00017304,
1313 .gpio3 = 0x02000000,
1314 },{
1315 .type = CX88_VMUX_SVIDEO,
1316 .vmux = 2,
1317 .gpio0 = 0x00018301,
1318 .gpio1 = 0x0000f207,
1319 .gpio2 = 0x00017304,
1320 .gpio3 = 0x02000000,
1321 }},
1322 .radio = {
1323 .type = CX88_RADIO,
1324 .gpio0 = 0x00015702,
1325 .gpio1 = 0x0000f207,
1326 .gpio2 = 0x00015702,
1327 .gpio3 = 0x02000000,
1328 },
1329 .mpeg = CX88_MPEG_DVB,
1330 },
1286 [CX88_BOARD_GENIATECH_DVBS] = { 1331 [CX88_BOARD_GENIATECH_DVBS] = {
1287 .name = "Geniatech DVB-S", 1332 .name = "Geniatech DVB-S",
1288 .tuner_type = TUNER_ABSENT, 1333 .tuner_type = TUNER_ABSENT,
@@ -2282,6 +2327,10 @@ static const struct cx88_subid cx88_subids[] = {
2282 .subdevice = 0x665e, 2327 .subdevice = 0x665e,
2283 .card = CX88_BOARD_WINFAST_DTV2000H, 2328 .card = CX88_BOARD_WINFAST_DTV2000H,
2284 },{ 2329 },{
2330 .subvendor = 0x107d,
2331 .subdevice = 0x6f2b,
2332 .card = CX88_BOARD_WINFAST_DTV2000H_J,
2333 },{
2285 .subvendor = 0x18ac, 2334 .subvendor = 0x18ac,
2286 .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */ 2335 .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
2287 .card = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q, 2336 .card = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index e237b507659b..1203e8d2c31e 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -696,6 +696,7 @@ static int dvb_register(struct cx8802_dev *dev)
696 } 696 }
697 break; 697 break;
698 case CX88_BOARD_WINFAST_DTV2000H: 698 case CX88_BOARD_WINFAST_DTV2000H:
699 case CX88_BOARD_WINFAST_DTV2000H_J:
699 case CX88_BOARD_HAUPPAUGE_HVR1100: 700 case CX88_BOARD_HAUPPAUGE_HVR1100:
700 case CX88_BOARD_HAUPPAUGE_HVR1100LP: 701 case CX88_BOARD_HAUPPAUGE_HVR1100LP:
701 case CX88_BOARD_HAUPPAUGE_HVR1300: 702 case CX88_BOARD_HAUPPAUGE_HVR1300:
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index d91f5c51206d..0abc3210072b 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -225,6 +225,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
225 ir->sampling = 1; 225 ir->sampling = 1;
226 break; 226 break;
227 case CX88_BOARD_WINFAST_DTV2000H: 227 case CX88_BOARD_WINFAST_DTV2000H:
228 case CX88_BOARD_WINFAST_DTV2000H_J:
228 case CX88_BOARD_WINFAST_DTV1800H: 229 case CX88_BOARD_WINFAST_DTV1800H:
229 ir_codes = ir_codes_winfast; 230 ir_codes = ir_codes_winfast;
230 ir->gpio_addr = MO_GP0_IO; 231 ir->gpio_addr = MO_GP0_IO;
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 9d83762163f5..d5cea41f4207 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -237,6 +237,7 @@ extern struct sram_channel cx88_sram_channels[];
237#define CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII 79 237#define CX88_BOARD_TERRATEC_CINERGY_HT_PCI_MKII 79
238#define CX88_BOARD_HAUPPAUGE_IRONLY 80 238#define CX88_BOARD_HAUPPAUGE_IRONLY 80
239#define CX88_BOARD_WINFAST_DTV1800H 81 239#define CX88_BOARD_WINFAST_DTV1800H 81
240#define CX88_BOARD_WINFAST_DTV2000H_J 82
240 241
241enum cx88_itype { 242enum cx88_itype {
242 CX88_VMUX_COMPOSITE1 = 1, 243 CX88_VMUX_COMPOSITE1 = 1,