#include <linux/i2c.h>
#include <media/tuner.h>
-/* Known major hardware variants, keyed from device ID */
-#define PVR2_HDW_TYPE_29XXX 0
-#define PVR2_HDW_TYPE_24XXX 1
-#define PVR2_HDW_TYPE_GOTVIEW_2 2
-#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR
-#define PVR2_HDW_TYPE_ONAIR_CREATOR 3
-#endif
-#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_USB2
-#define PVR2_HDW_TYPE_ONAIR_USB2 4
-#endif
-
-struct usb_device_id pvr2_device_table[] = {
- [PVR2_HDW_TYPE_29XXX] = { USB_DEVICE(0x2040, 0x2900) },
- [PVR2_HDW_TYPE_24XXX] = { USB_DEVICE(0x2040, 0x2400) },
- [PVR2_HDW_TYPE_GOTVIEW_2] = { USB_DEVICE(0x1164, 0x0622) },
-#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR
- [PVR2_HDW_TYPE_ONAIR_CREATOR] = { USB_DEVICE(0x11ba, 0x1003) },
-#endif
-#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_USB2
- [PVR2_HDW_TYPE_ONAIR_USB2] = { USB_DEVICE(0x11ba, 0x1001) },
-#endif
- { }
-};
-#if defined(CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR) || defined(CONFIG_VIDEO_PVRUSB2_ONAIR_USB2)
-/* Names of other client modules to request for Creator model hardware */
-static const char *pvr2_client_onair[] = {
- "saa7115",
- "tuner",
- "cs53l32a",
-};
-#endif
-/* Names of other client modules to request for 24xxx model hardware */
-static const char *pvr2_client_24xxx[] = {
- "cx25840",
- "tuner",
- "wm8775",
-};
+/*------------------------------------------------------------------------*/
+/* Hauppauge PVR-USB2 Model 29xxx */
-/* Names of other client modules to request for 29xxx model hardware */
static const char *pvr2_client_29xxx[] = {
"msp3400",
"saa7115",
"tuner",
};
-// Names of other client modules to request for Gotview 2 model hardware
-static const char *pvr2_client_gotview_2[] = {
- "cx25840",
- "tuner",
-};
-
-/* Firmware file name(s) for 29xxx devices */
static const char *pvr2_fw1_names_29xxx[] = {
"v4l-pvrusb2-29xxx-01.fw",
};
-/* Firmware file name(s) for 24xxx devices */
-static const char *pvr2_fw1_names_24xxx[] = {
- "v4l-pvrusb2-24xxx-01.fw",
-};
-
-const struct pvr2_device_desc pvr2_device_descriptions[] = {
- [PVR2_HDW_TYPE_29XXX] = {
+static const struct pvr2_device_desc pvr2_device_29xxx = {
.description = "WinTV PVR USB2 Model Category 29xxxx",
.shortname = "29xxx",
.client_modules.lst = pvr2_client_29xxx,
.fx2_firmware.cnt = ARRAY_SIZE(pvr2_fw1_names_29xxx),
.flag_has_hauppauge_rom = !0,
.signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
- },
- [PVR2_HDW_TYPE_24XXX] = {
+};
+
+
+
+/*------------------------------------------------------------------------*/
+/* Hauppauge PVR-USB2 Model 24xxx */
+
+static const char *pvr2_client_24xxx[] = {
+ "cx25840",
+ "tuner",
+ "wm8775",
+};
+
+static const char *pvr2_fw1_names_24xxx[] = {
+ "v4l-pvrusb2-24xxx-01.fw",
+};
+
+static const struct pvr2_device_desc pvr2_device_24xxx = {
.description = "WinTV PVR USB2 Model Category 24xxxx",
.shortname = "24xxx",
.client_modules.lst = pvr2_client_24xxx,
.flag_has_hauppauge_rom = !0,
.flag_has_hauppauge_custom_ir = !0,
.signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
- },
- [PVR2_HDW_TYPE_GOTVIEW_2] = {
+};
+
+
+
+/*------------------------------------------------------------------------*/
+/* GOTVIEW USB2.0 DVD2 */
+
+static const char *pvr2_client_gotview_2[] = {
+ "cx25840",
+ "tuner",
+};
+
+static const struct pvr2_device_desc pvr2_device_gotview_2 = {
.description = "Gotview USB 2.0 DVD 2",
.shortname = "gv2",
.client_modules.lst = pvr2_client_gotview_2,
.flag_has_cx25840 = !0,
.default_tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
.signal_routing_scheme = PVR2_ROUTING_SCHEME_GOTVIEW,
- },
+};
+
+
+
#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR
- [PVR2_HDW_TYPE_ONAIR_CREATOR] = {
+/*------------------------------------------------------------------------*/
+/* OnAir Creator */
+
+static const char *pvr2_client_onair_creator[] = {
+ "saa7115",
+ "tuner",
+ "cs53l32a",
+};
+
+static const struct pvr2_device_desc pvr2_device_onair_creator = {
.description = "OnAir Creator Hybrid USB tuner",
.shortname = "oac",
- .client_modules.lst = pvr2_client_onair,
- .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair),
+ .client_modules.lst = pvr2_client_onair_creator,
+ .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_creator),
.default_tuner_type = TUNER_LG_TDVS_H06XF,
.signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
- },
+};
#endif
+
+
+
#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_USB2
- [PVR2_HDW_TYPE_ONAIR_USB2] = {
+/*------------------------------------------------------------------------*/
+/* OnAir USB 2.0 */
+
+static const char *pvr2_client_onair_usb2[] = {
+ "saa7115",
+ "tuner",
+ "cs53l32a",
+};
+
+static const struct pvr2_device_desc pvr2_device_onair_usb2 = {
.description = "OnAir USB2 Hybrid USB tuner",
.shortname = "oa2",
- .client_modules.lst = pvr2_client_onair,
- .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair),
+ .client_modules.lst = pvr2_client_onair_usb2,
+ .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_usb2),
.default_tuner_type = TUNER_PHILIPS_ATSC,
.signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
- },
-#endif
};
+#endif
+
+
-const unsigned int pvr2_device_count = ARRAY_SIZE(pvr2_device_descriptions);
+/*------------------------------------------------------------------------*/
+
+struct usb_device_id pvr2_device_table[] = {
+ { USB_DEVICE(0x2040, 0x2900),
+ .driver_info = (kernel_ulong_t)&pvr2_device_29xxx},
+ { USB_DEVICE(0x2040, 0x2400),
+ .driver_info = (kernel_ulong_t)&pvr2_device_24xxx},
+ { USB_DEVICE(0x1164, 0x0622),
+ .driver_info = (kernel_ulong_t)&pvr2_device_gotview_2},
+#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR
+ { USB_DEVICE(0x11ba, 0x1003),
+ .driver_info = (kernel_ulong_t)&pvr2_device_onair_creator},
+#endif
+#ifdef CONFIG_VIDEO_PVRUSB2_ONAIR_USB2
+ { USB_DEVICE(0x11ba, 0x1001),
+ .driver_info = (kernel_ulong_t)&pvr2_device_onair_usb2},
+#endif
+ { }
+};
MODULE_DEVICE_TABLE(usb, pvr2_device_table);