31 #include <linux/module.h>
33 #include <linux/i2c.h>
35 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
57 #define PVR2_FIRMWARE_29xxx "v4l-pvrusb2-29xxx-01.fw"
58 static const char *pvr2_fw1_names_29xxx[] = {
63 .description =
"WinTV PVR USB2 Model 29xxx",
65 .client_table.lst = pvr2_cli_29xxx,
66 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_29xxx),
67 .fx2_firmware.lst = pvr2_fw1_names_29xxx,
68 .fx2_firmware.cnt =
ARRAY_SIZE(pvr2_fw1_names_29xxx),
69 .flag_has_hauppauge_rom = !0,
70 .flag_has_analogtuner = !0,
71 .flag_has_fmradio = !0,
72 .flag_has_composite = !0,
73 .flag_has_svideo = !0,
91 #define PVR2_FIRMWARE_24xxx "v4l-pvrusb2-24xxx-01.fw"
92 static const char *pvr2_fw1_names_24xxx[] = {
97 .description =
"WinTV PVR USB2 Model 24xxx",
99 .client_table.lst = pvr2_cli_24xxx,
100 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_24xxx),
101 .fx2_firmware.lst = pvr2_fw1_names_24xxx,
102 .fx2_firmware.cnt =
ARRAY_SIZE(pvr2_fw1_names_24xxx),
103 .flag_has_cx25840 = !0,
104 .flag_has_wm8775 = !0,
105 .flag_has_hauppauge_rom = !0,
106 .flag_has_analogtuner = !0,
107 .flag_has_fmradio = !0,
108 .flag_has_composite = !0,
109 .flag_has_svideo = !0,
127 .description =
"Gotview USB 2.0 DVD 2",
129 .client_table.lst = pvr2_cli_gotview_2,
130 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_gotview_2),
131 .flag_has_cx25840 = !0,
132 .default_tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
133 .flag_has_analogtuner = !0,
134 .flag_has_fmradio = !0,
135 .flag_has_composite = !0,
136 .flag_has_svideo = !0,
148 .description =
"Gotview USB 2.0 DVD Deluxe",
150 .client_table.lst = pvr2_cli_gotview_2,
151 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_gotview_2),
152 .flag_has_cx25840 = !0,
153 .default_tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
154 .flag_has_analogtuner = !0,
155 .flag_has_composite = !0,
156 .flag_has_svideo = !0,
170 .description =
"Terratec Grabster AV400",
171 .shortname =
"av400",
172 .flag_is_experimental = 1,
173 .client_table.lst = pvr2_cli_av400,
174 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_av400),
175 .flag_has_cx25840 = !0,
176 .flag_has_analogtuner = 0,
177 .flag_has_composite = !0,
178 .flag_has_svideo = !0,
187 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
191 .clock_polarity_flip = 1,
207 &adap->
channel.hdw->i2c_adap, 0x61,
208 TUNER_LG_TDVS_H06XF);
213 static const struct pvr2_dvb_props pvr2_onair_creator_fe_props = {
215 .tuner_attach = pvr2_lgh06xf_attach,
226 .description =
"OnAir Creator Hybrid USB tuner",
228 .client_table.lst = pvr2_cli_onair_creator,
229 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_onair_creator),
230 .default_tuner_type = TUNER_LG_TDVS_H06XF,
231 .flag_has_analogtuner = !0,
232 .flag_has_composite = !0,
233 .flag_has_svideo = !0,
234 .flag_digital_requires_cx23416 = !0,
238 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
239 .dvb_props = &pvr2_onair_creator_fe_props,
248 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
267 &adap->
channel.hdw->i2c_adap, 0x61,
268 TUNER_PHILIPS_FCV1236D);
275 .tuner_attach = pvr2_fcv1236d_attach,
286 .description =
"OnAir USB2 Hybrid USB tuner",
288 .client_table.lst = pvr2_cli_onair_usb2,
289 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_onair_usb2),
290 .default_tuner_type = TUNER_PHILIPS_FCV1236D,
291 .flag_has_analogtuner = !0,
292 .flag_has_composite = !0,
293 .flag_has_svideo = !0,
294 .flag_digital_requires_cx23416 = !0,
298 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
299 .dvb_props = &pvr2_onair_usb2_fe_props,
308 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
318 .disable_gate_access = 1,
326 .
dvbt_6 = { .if_freq = 3300, .agc_mode = 3, .std = 4,
327 .if_lvl = 1, .rfagc_top = 0x37, },
328 .dvbt_7 = { .if_freq = 3800, .agc_mode = 3, .std = 5,
329 .if_lvl = 1, .rfagc_top = 0x37, },
330 .dvbt_8 = { .if_freq = 4300, .agc_mode = 3, .std = 6,
331 .if_lvl = 1, .rfagc_top = 0x37, },
335 .
std_map = &hauppauge_tda18271_dvbt_std_map,
353 &adap->
channel.hdw->i2c_adap, 0x42,
357 &hauppauge_tda18271_dvb_config);
364 .tuner_attach = pvr2_73xxx_tda18271_8295_attach,
371 .i2c_address_list =
"\x42"},
374 #define PVR2_FIRMWARE_73xxx "v4l-pvrusb2-73xxx-01.fw"
375 static const char *pvr2_fw1_names_73xxx[] = {
380 .description =
"WinTV HVR-1900 Model 73xxx",
381 .shortname =
"73xxx",
382 .client_table.lst = pvr2_cli_73xxx,
383 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_73xxx),
384 .fx2_firmware.lst = pvr2_fw1_names_73xxx,
385 .fx2_firmware.cnt =
ARRAY_SIZE(pvr2_fw1_names_73xxx),
386 .flag_has_cx25840 = !0,
387 .flag_has_hauppauge_rom = !0,
388 .flag_has_analogtuner = !0,
389 .flag_has_composite = !0,
390 .flag_has_svideo = !0,
396 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
397 .dvb_props = &pvr2_73xxx_dvb_props,
406 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
426 .
atsc_6 = { .if_freq = 5380, .agc_mode = 3, .std = 3,
427 .if_lvl = 6, .rfagc_top = 0x37, },
428 .qam_6 = { .if_freq = 4000, .agc_mode = 3, .std = 0,
429 .if_lvl = 6, .rfagc_top = 0x37, },
433 .
std_map = &hauppauge_tda18271_std_map,
461 &adap->
channel.hdw->i2c_adap, 0x42,
465 &hauppauge_tda18271_config);
472 .tuner_attach = pvr2_tda18271_8295_attach,
477 .tuner_attach = pvr2_tda18271_8295_attach,
481 #define PVR2_FIRMWARE_75xxx "v4l-pvrusb2-73xxx-01.fw"
482 static const char *pvr2_fw1_names_75xxx[] = {
487 .description =
"WinTV HVR-1950 Model 750xx",
488 .shortname =
"750xx",
489 .client_table.lst = pvr2_cli_73xxx,
490 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_73xxx),
491 .fx2_firmware.lst = pvr2_fw1_names_75xxx,
492 .fx2_firmware.cnt =
ARRAY_SIZE(pvr2_fw1_names_75xxx),
493 .flag_has_cx25840 = !0,
494 .flag_has_hauppauge_rom = !0,
495 .flag_has_analogtuner = !0,
496 .flag_has_composite = !0,
497 .flag_has_svideo = !0,
504 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
505 .dvb_props = &pvr2_750xx_dvb_props,
510 .description =
"WinTV HVR-1950 Model 751xx",
511 .shortname =
"751xx",
512 .client_table.lst = pvr2_cli_73xxx,
513 .client_table.cnt =
ARRAY_SIZE(pvr2_cli_73xxx),
514 .fx2_firmware.lst = pvr2_fw1_names_75xxx,
515 .fx2_firmware.cnt =
ARRAY_SIZE(pvr2_fw1_names_75xxx),
516 .flag_has_cx25840 = !0,
517 .flag_has_hauppauge_rom = !0,
518 .flag_has_analogtuner = !0,
519 .flag_has_composite = !0,
520 .flag_has_svideo = !0,
527 #ifdef CONFIG_VIDEO_PVRUSB2_DVB
528 .dvb_props = &pvr2_751xx_dvb_props,
537 { USB_DEVICE(0x2040, 0x2900),
539 { USB_DEVICE(0x2040, 0x2950),
541 { USB_DEVICE(0x2040, 0x2400),
543 { USB_DEVICE(0x1164, 0x0622),
545 { USB_DEVICE(0x1164, 0x0602),
547 { USB_DEVICE(0x11ba, 0x1003),
549 { USB_DEVICE(0x11ba, 0x1001),
551 { USB_DEVICE(0x2040, 0x7300),
553 { USB_DEVICE(0x2040, 0x7500),
555 { USB_DEVICE(0x2040, 0x7501),
557 { USB_DEVICE(0x0ccd, 0x0039),