aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/video4linux/CARDLIST.usbvision129
-rw-r--r--drivers/media/video/usbvision/usbvision-cards.c15
-rw-r--r--drivers/media/video/usbvision/usbvision-cards.h129
-rw-r--r--drivers/media/video/usbvision/usbvision-video.c143
4 files changed, 128 insertions, 288 deletions
diff --git a/Documentation/video4linux/CARDLIST.usbvision b/Documentation/video4linux/CARDLIST.usbvision
index ab110b7b5b9e..3d6850ef0245 100644
--- a/Documentation/video4linux/CARDLIST.usbvision
+++ b/Documentation/video4linux/CARDLIST.usbvision
@@ -1,65 +1,64 @@
1 0 -> Custom Dummy USBVision Device [fff0:fff0] 1 0 -> Xanboo [0a6f:0400]
2 1 -> Xanboo [0a6f:0400] 2 1 -> Belkin USB VideoBus II Adapter [050d:0106]
3 2 -> Belkin USB VideoBus II Adapter [050d:0106] 3 2 -> Belkin Components USB VideoBus [050d:0207]
4 3 -> Belkin Components USB VideoBus [050d:0207] 4 3 -> Belkin USB VideoBus II [050d:0208]
5 4 -> Belkin USB VideoBus II [050d:0208] 5 4 -> echoFX InterView Lite [0571:0002]
6 5 -> echoFX InterView Lite [0571:0002] 6 5 -> USBGear USBG-V1 resp. HAMA USB [0573:0003]
7 6 -> USBGear USBG-V1 resp. HAMA USB [0573:0003] 7 6 -> D-Link V100 [0573:0400]
8 7 -> D-Link V100 [0573:0400] 8 7 -> X10 USB Camera [0573:2000]
9 8 -> X10 USB Camera [0573:2000] 9 8 -> Hauppauge WinTV USB Live (PAL B/G) [0573:2d00]
10 9 -> Hauppauge WinTV USB Live (PAL B/G) [0573:2d00] 10 9 -> Hauppauge WinTV USB Live Pro (NTSC M/N) [0573:2d01]
11 10 -> Hauppauge WinTV USB Live Pro (NTSC M/N) [0573:2d01] 11 10 -> Zoran Co. PMD (Nogatech) AV-grabber Manhattan [0573:2101]
12 11 -> Zoran Co. PMD (Nogatech) AV-grabber Manhattan [0573:2101] 12 11 -> Nogatech USB-TV (NTSC) FM [0573:4100]
13 12 -> Nogatech USB-TV (NTSC) FM [0573:4100] 13 12 -> PNY USB-TV (NTSC) FM [0573:4110]
14 13 -> PNY USB-TV (NTSC) FM [0573:4110] 14 13 -> PixelView PlayTv-USB PRO (PAL) FM [0573:4450]
15 14 -> PixelView PlayTv-USB PRO (PAL) FM [0573:4450] 15 14 -> ZTV ZT-721 2.4GHz USB A/V Receiver [0573:4550]
16 15 -> ZTV ZT-721 2.4GHz USB A/V Receiver [0573:4550] 16 15 -> Hauppauge WinTV USB (NTSC M/N) [0573:4d00]
17 16 -> Hauppauge WinTV USB (NTSC M/N) [0573:4d00] 17 16 -> Hauppauge WinTV USB (PAL B/G) [0573:4d01]
18 17 -> Hauppauge WinTV USB (PAL B/G) [0573:4d01] 18 17 -> Hauppauge WinTV USB (PAL I) [0573:4d02]
19 18 -> Hauppauge WinTV USB (PAL I) [0573:4d02] 19 18 -> Hauppauge WinTV USB (PAL/SECAM L) [0573:4d03]
20 19 -> Hauppauge WinTV USB (PAL/SECAM L) [0573:4d03] 20 19 -> Hauppauge WinTV USB (PAL D/K) [0573:4d04]
21 20 -> Hauppauge WinTV USB (PAL D/K) [0573:4d04] 21 20 -> Hauppauge WinTV USB (NTSC FM) [0573:4d10]
22 21 -> Hauppauge WinTV USB (NTSC FM) [0573:4d10] 22 21 -> Hauppauge WinTV USB (PAL B/G FM) [0573:4d11]
23 22 -> Hauppauge WinTV USB (PAL B/G FM) [0573:4d11] 23 22 -> Hauppauge WinTV USB (PAL I FM) [0573:4d12]
24 23 -> Hauppauge WinTV USB (PAL I FM) [0573:4d12] 24 23 -> Hauppauge WinTV USB (PAL D/K FM) [0573:4d14]
25 24 -> Hauppauge WinTV USB (PAL D/K FM) [0573:4d14] 25 24 -> Hauppauge WinTV USB Pro (NTSC M/N) [0573:4d2a]
26 25 -> Hauppauge WinTV USB Pro (NTSC M/N) [0573:4d2a] 26 25 -> Hauppauge WinTV USB Pro (NTSC M/N) V2 [0573:4d2b]
27 26 -> Hauppauge WinTV USB Pro (NTSC M/N) V2 [0573:4d2b] 27 26 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L) [0573:4d2c]
28 27 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L) [0573:4d2c] 28 27 -> Hauppauge WinTV USB Pro (NTSC M/N) V3 [0573:4d20]
29 28 -> Hauppauge WinTV USB Pro (NTSC M/N) V3 [0573:4d20] 29 28 -> Hauppauge WinTV USB Pro (PAL B/G) [0573:4d21]
30 29 -> Hauppauge WinTV USB Pro (PAL B/G) [0573:4d21] 30 29 -> Hauppauge WinTV USB Pro (PAL I) [0573:4d22]
31 30 -> Hauppauge WinTV USB Pro (PAL I) [0573:4d22] 31 30 -> Hauppauge WinTV USB Pro (PAL/SECAM L) [0573:4d23]
32 31 -> Hauppauge WinTV USB Pro (PAL/SECAM L) [0573:4d23] 32 31 -> Hauppauge WinTV USB Pro (PAL D/K) [0573:4d24]
33 32 -> Hauppauge WinTV USB Pro (PAL D/K) [0573:4d24] 33 32 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) [0573:4d25]
34 33 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) [0573:4d25] 34 33 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2 [0573:4d26]
35 34 -> Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2 [0573:4d26] 35 34 -> Hauppauge WinTV USB Pro (PAL B/G) V2 [0573:4d27]
36 35 -> Hauppauge WinTV USB Pro (PAL B/G) V2 [0573:4d27] 36 35 -> Hauppauge WinTV USB Pro (PAL B/G,D/K) [0573:4d28]
37 36 -> Hauppauge WinTV USB Pro (PAL B/G,D/K) [0573:4d28] 37 36 -> Hauppauge WinTV USB Pro (PAL I,D/K) [0573:4d29]
38 37 -> Hauppauge WinTV USB Pro (PAL I,D/K) [0573:4d29] 38 37 -> Hauppauge WinTV USB Pro (NTSC M/N FM) [0573:4d30]
39 38 -> Hauppauge WinTV USB Pro (NTSC M/N FM) [0573:4d30] 39 38 -> Hauppauge WinTV USB Pro (PAL B/G FM) [0573:4d31]
40 39 -> Hauppauge WinTV USB Pro (PAL B/G FM) [0573:4d31] 40 39 -> Hauppauge WinTV USB Pro (PAL I FM) [0573:4d32]
41 40 -> Hauppauge WinTV USB Pro (PAL I FM) [0573:4d32] 41 40 -> Hauppauge WinTV USB Pro (PAL D/K FM) [0573:4d34]
42 41 -> Hauppauge WinTV USB Pro (PAL D/K FM) [0573:4d34] 42 41 -> Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) [0573:4d35]
43 42 -> Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM) [0573:4d35] 43 42 -> Hauppauge WinTV USB Pro (Temic PAL B/G FM) [0573:4d36]
44 43 -> Hauppauge WinTV USB Pro (Temic PAL B/G FM) [0573:4d36] 44 43 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM) [0573:4d37]
45 44 -> Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM) [0573:4d37] 45 44 -> Hauppauge WinTV USB Pro (NTSC M/N FM) V2 [0573:4d38]
46 45 -> Hauppauge WinTV USB Pro (NTSC M/N FM) V2 [0573:4d38] 46 45 -> Camtel Technology USB TV Genie Pro FM Model TVB330 [0768:0006]
47 46 -> Camtel Technology USB TV Genie Pro FM Model TVB330 [0768:0006] 47 46 -> Digital Video Creator I [07d0:0001]
48 47 -> Digital Video Creator I [07d0:0001] 48 47 -> Global Village GV-007 (NTSC) [07d0:0002]
49 48 -> Global Village GV-007 (NTSC) [07d0:0002] 49 48 -> Dazzle Fusion Model DVC-50 Rev 1 (NTSC) [07d0:0003]
50 49 -> Dazzle Fusion Model DVC-50 Rev 1 (NTSC) [07d0:0003] 50 49 -> Dazzle Fusion Model DVC-80 Rev 1 (PAL) [07d0:0004]
51 50 -> Dazzle Fusion Model DVC-80 Rev 1 (PAL) [07d0:0004] 51 50 -> Dazzle Fusion Model DVC-90 Rev 1 (SECAM) [07d0:0005]
52 51 -> Dazzle Fusion Model DVC-90 Rev 1 (SECAM) [07d0:0005] 52 51 -> Eskape Labs MyTV2Go [07f8:9104]
53 52 -> Eskape Labs MyTV2Go [07f8:9104] 53 52 -> Pinnacle Studio PCTV USB (PAL) [2304:010d]
54 53 -> Pinnacle Studio PCTV USB (PAL) [2304:010d] 54 53 -> Pinnacle Studio PCTV USB (SECAM) [2304:0109]
55 54 -> Pinnacle Studio PCTV USB (SECAM) [2304:0109] 55 54 -> Pinnacle Studio PCTV USB (PAL) FM [2304:0110]
56 55 -> Pinnacle Studio PCTV USB (PAL) FM [2304:0110] 56 55 -> Miro PCTV USB [2304:0111]
57 56 -> Miro PCTV USB [2304:0111] 57 56 -> Pinnacle Studio PCTV USB (NTSC) FM [2304:0112]
58 57 -> Pinnacle Studio PCTV USB (NTSC) FM [2304:0112] 58 57 -> Pinnacle Studio PCTV USB (PAL) FM V2 [2304:0210]
59 58 -> Pinnacle Studio PCTV USB (PAL) FM V2 [2304:0210] 59 58 -> Pinnacle Studio PCTV USB (NTSC) FM V2 [2304:0212]
60 59 -> Pinnacle Studio PCTV USB (NTSC) FM V2 [2304:0212] 60 59 -> Pinnacle Studio PCTV USB (PAL) FM V3 [2304:0214]
61 60 -> Pinnacle Studio PCTV USB (PAL) FM V3 [2304:0214] 61 60 -> Pinnacle Studio Linx Video input cable (NTSC) [2304:0300]
62 61 -> Pinnacle Studio Linx Video input cable (NTSC) [2304:0300] 62 61 -> Pinnacle Studio Linx Video input cable (PAL) [2304:0301]
63 62 -> Pinnacle Studio Linx Video input cable (PAL) [2304:0301] 63 62 -> Pinnacle PCTV Bungee USB (PAL) FM [2304:0419]
64 63 -> Pinnacle PCTV Bungee USB (PAL) FM [2304:0419] 64 63 -> Hauppauge WinTv-USB [2400:4200]
65 64 -> Hauppauge WinTv-USB [2400:4200]
diff --git a/drivers/media/video/usbvision/usbvision-cards.c b/drivers/media/video/usbvision/usbvision-cards.c
index edee094cf15d..13f69fe6360d 100644
--- a/drivers/media/video/usbvision/usbvision-cards.c
+++ b/drivers/media/video/usbvision/usbvision-cards.c
@@ -32,20 +32,6 @@
32 32
33/* Supported Devices: A table for usbvision.c*/ 33/* Supported Devices: A table for usbvision.c*/
34struct usbvision_device_data_st usbvision_device_data[] = { 34struct usbvision_device_data_st usbvision_device_data[] = {
35 [DUMMY_DEVICE] = {
36 .Interface = -1,
37 .Codec = CODEC_SAA7111,
38 .VideoChannels = 3,
39 .VideoNorm = V4L2_STD_NTSC,
40 .AudioChannels = 1,
41 .Radio = 1,
42 .vbi = 1,
43 .Tuner = 1,
44 .TunerType = TUNER_PHILIPS_NTSC_M,
45 .X_Offset = -1,
46 .Y_Offset = -1,
47 .ModelString = "Custom Dummy USBVision Device",
48 },
49 [XANBOO] = { 35 [XANBOO] = {
50 .Interface = -1, 36 .Interface = -1,
51 .Codec = CODEC_SAA7113, 37 .Codec = CODEC_SAA7113,
@@ -1032,7 +1018,6 @@ const int usbvision_device_data_size=ARRAY_SIZE(usbvision_device_data);
1032/* Supported Devices */ 1018/* Supported Devices */
1033 1019
1034struct usb_device_id usbvision_table [] = { 1020struct usb_device_id usbvision_table [] = {
1035 { USB_DEVICE(0xfff0, 0xfff0), .driver_info=DUMMY_DEVICE },
1036 { USB_DEVICE(0x0a6f, 0x0400), .driver_info=XANBOO }, 1021 { USB_DEVICE(0x0a6f, 0x0400), .driver_info=XANBOO },
1037 { USB_DEVICE(0x050d, 0x0106), .driver_info=BELKIN_VIDEOBUS_II }, 1022 { USB_DEVICE(0x050d, 0x0106), .driver_info=BELKIN_VIDEOBUS_II },
1038 { USB_DEVICE(0x050d, 0x0207), .driver_info=BELKIN_VIDEOBUS }, 1023 { USB_DEVICE(0x050d, 0x0207), .driver_info=BELKIN_VIDEOBUS },
diff --git a/drivers/media/video/usbvision/usbvision-cards.h b/drivers/media/video/usbvision/usbvision-cards.h
index 766accc927ef..512c5cee4145 100644
--- a/drivers/media/video/usbvision/usbvision-cards.h
+++ b/drivers/media/video/usbvision/usbvision-cards.h
@@ -1,67 +1,66 @@
1#define DUMMY_DEVICE 0 1#define XANBOO 0
2#define XANBOO 1 2#define BELKIN_VIDEOBUS_II 1
3#define BELKIN_VIDEOBUS_II 2 3#define BELKIN_VIDEOBUS 2
4#define BELKIN_VIDEOBUS 3 4#define BELKIN_USB_VIDEOBUS_II 3
5#define BELKIN_USB_VIDEOBUS_II 4 5#define ECHOFX_INTERVIEW_LITE 4
6#define ECHOFX_INTERVIEW_LITE 5 6#define USBGEAR_USBG_V1 5
7#define USBGEAR_USBG_V1 6 7#define D_LINK_V100 6
8#define D_LINK_V100 7 8#define X10_USB_CAMERA 7
9#define X10_USB_CAMERA 8 9#define HPG_WINTV_LIVE_PAL_BG 8
10#define HPG_WINTV_LIVE_PAL_BG 9 10#define HPG_WINTV_LIVE_PRO_NTSC_MN 9
11#define HPG_WINTV_LIVE_PRO_NTSC_MN 10 11#define ZORAN_PMD_NOGATECH 10
12#define ZORAN_PMD_NOGATECH 11 12#define NOGATECH_USB_TV_NTSC_FM 11
13#define NOGATECH_USB_TV_NTSC_FM 12 13#define PNY_USB_TV_NTSC_FM 12
14#define PNY_USB_TV_NTSC_FM 13 14#define PV_PLAYTV_USB_PRO_PAL_FM 13
15#define PV_PLAYTV_USB_PRO_PAL_FM 14 15#define ZT_721 14
16#define ZT_721 15 16#define HPG_WINTV_NTSC_MN 15
17#define HPG_WINTV_NTSC_MN 16 17#define HPG_WINTV_PAL_BG 16
18#define HPG_WINTV_PAL_BG 17 18#define HPG_WINTV_PAL_I 17
19#define HPG_WINTV_PAL_I 18 19#define HPG_WINTV_PAL_SECAM_L 18
20#define HPG_WINTV_PAL_SECAM_L 19 20#define HPG_WINTV_PAL_D_K 19
21#define HPG_WINTV_PAL_D_K 20 21#define HPG_WINTV_NTSC_FM 20
22#define HPG_WINTV_NTSC_FM 21 22#define HPG_WINTV_PAL_BG_FM 21
23#define HPG_WINTV_PAL_BG_FM 22 23#define HPG_WINTV_PAL_I_FM 22
24#define HPG_WINTV_PAL_I_FM 23 24#define HPG_WINTV_PAL_D_K_FM 23
25#define HPG_WINTV_PAL_D_K_FM 24 25#define HPG_WINTV_PRO_NTSC_MN 24
26#define HPG_WINTV_PRO_NTSC_MN 25 26#define HPG_WINTV_PRO_NTSC_MN_V2 25
27#define HPG_WINTV_PRO_NTSC_MN_V2 26 27#define HPG_WINTV_PRO_PAL 26
28#define HPG_WINTV_PRO_PAL 27 28#define HPG_WINTV_PRO_NTSC_MN_V3 27
29#define HPG_WINTV_PRO_NTSC_MN_V3 28 29#define HPG_WINTV_PRO_PAL_BG 28
30#define HPG_WINTV_PRO_PAL_BG 29 30#define HPG_WINTV_PRO_PAL_I 29
31#define HPG_WINTV_PRO_PAL_I 30 31#define HPG_WINTV_PRO_PAL_SECAM_L 30
32#define HPG_WINTV_PRO_PAL_SECAM_L 31 32#define HPG_WINTV_PRO_PAL_D_K 31
33#define HPG_WINTV_PRO_PAL_D_K 32 33#define HPG_WINTV_PRO_PAL_SECAM 32
34#define HPG_WINTV_PRO_PAL_SECAM 33 34#define HPG_WINTV_PRO_PAL_SECAM_V2 33
35#define HPG_WINTV_PRO_PAL_SECAM_V2 34 35#define HPG_WINTV_PRO_PAL_BG_V2 34
36#define HPG_WINTV_PRO_PAL_BG_V2 35 36#define HPG_WINTV_PRO_PAL_BG_D_K 35
37#define HPG_WINTV_PRO_PAL_BG_D_K 36 37#define HPG_WINTV_PRO_PAL_I_D_K 36
38#define HPG_WINTV_PRO_PAL_I_D_K 37 38#define HPG_WINTV_PRO_NTSC_MN_FM 37
39#define HPG_WINTV_PRO_NTSC_MN_FM 38 39#define HPG_WINTV_PRO_PAL_BG_FM 38
40#define HPG_WINTV_PRO_PAL_BG_FM 39 40#define HPG_WINTV_PRO_PAL_I_FM 39
41#define HPG_WINTV_PRO_PAL_I_FM 40 41#define HPG_WINTV_PRO_PAL_D_K_FM 40
42#define HPG_WINTV_PRO_PAL_D_K_FM 41 42#define HPG_WINTV_PRO_TEMIC_PAL_FM 41
43#define HPG_WINTV_PRO_TEMIC_PAL_FM 42 43#define HPG_WINTV_PRO_TEMIC_PAL_BG_FM 42
44#define HPG_WINTV_PRO_TEMIC_PAL_BG_FM 43 44#define HPG_WINTV_PRO_PAL_FM 43
45#define HPG_WINTV_PRO_PAL_FM 44 45#define HPG_WINTV_PRO_NTSC_MN_FM_V2 44
46#define HPG_WINTV_PRO_NTSC_MN_FM_V2 45 46#define CAMTEL_TVB330 45
47#define CAMTEL_TVB330 46 47#define DIGITAL_VIDEO_CREATOR_I 46
48#define DIGITAL_VIDEO_CREATOR_I 47 48#define GLOBAL_VILLAGE_GV_007_NTSC 47
49#define GLOBAL_VILLAGE_GV_007_NTSC 48 49#define DAZZLE_DVC_50_REV_1_NTSC 48
50#define DAZZLE_DVC_50_REV_1_NTSC 49 50#define DAZZLE_DVC_80_REV_1_PAL 49
51#define DAZZLE_DVC_80_REV_1_PAL 50 51#define DAZZLE_DVC_90_REV_1_SECAM 50
52#define DAZZLE_DVC_90_REV_1_SECAM 51 52#define ESKAPE_LABS_MYTV2GO 51
53#define ESKAPE_LABS_MYTV2GO 52 53#define PINNA_PCTV_USB_PAL 52
54#define PINNA_PCTV_USB_PAL 53 54#define PINNA_PCTV_USB_SECAM 53
55#define PINNA_PCTV_USB_SECAM 54 55#define PINNA_PCTV_USB_PAL_FM 54
56#define PINNA_PCTV_USB_PAL_FM 55 56#define MIRO_PCTV_USB 55
57#define MIRO_PCTV_USB 56 57#define PINNA_PCTV_USB_NTSC_FM 56
58#define PINNA_PCTV_USB_NTSC_FM 57 58#define PINNA_PCTV_USB_PAL_FM_V2 57
59#define PINNA_PCTV_USB_PAL_FM_V2 58 59#define PINNA_PCTV_USB_NTSC_FM_V2 58
60#define PINNA_PCTV_USB_NTSC_FM_V2 59 60#define PINNA_PCTV_USB_PAL_FM_V3 59
61#define PINNA_PCTV_USB_PAL_FM_V3 60 61#define PINNA_LINX_VD_IN_CAB_NTSC 60
62#define PINNA_LINX_VD_IN_CAB_NTSC 61 62#define PINNA_LINX_VD_IN_CAB_PAL 61
63#define PINNA_LINX_VD_IN_CAB_PAL 62 63#define PINNA_PCTV_BUNGEE_PAL_FM 62
64#define PINNA_PCTV_BUNGEE_PAL_FM 63 64#define HPG_WINTV 63
65#define HPG_WINTV 64
66 65
67extern const int usbvision_device_data_size; 66extern const int usbvision_device_data_size;
diff --git a/drivers/media/video/usbvision/usbvision-video.c b/drivers/media/video/usbvision/usbvision-video.c
index d9e517d497f7..216704170a4c 100644
--- a/drivers/media/video/usbvision/usbvision-video.c
+++ b/drivers/media/video/usbvision/usbvision-video.c
@@ -151,7 +151,6 @@ static int PowerOnAtOpen = 1; // Set the default device to power on at startu
151static int video_nr = -1; // Sequential Number of Video Device 151static int video_nr = -1; // Sequential Number of Video Device
152static int radio_nr = -1; // Sequential Number of Radio Device 152static int radio_nr = -1; // Sequential Number of Radio Device
153static int vbi_nr = -1; // Sequential Number of VBI Device 153static int vbi_nr = -1; // Sequential Number of VBI Device
154static char *CustomDevice=NULL; // Set as nothing....
155 154
156// Grab parameters for the device driver 155// Grab parameters for the device driver
157 156
@@ -162,7 +161,6 @@ module_param(PowerOnAtOpen, int, 0444);
162module_param(video_nr, int, 0444); 161module_param(video_nr, int, 0444);
163module_param(radio_nr, int, 0444); 162module_param(radio_nr, int, 0444);
164module_param(vbi_nr, int, 0444); 163module_param(vbi_nr, int, 0444);
165module_param(CustomDevice, charp, 0444);
166#else // Old Style 164#else // Old Style
167MODULE_PARAM(isocMode, "i"); 165MODULE_PARAM(isocMode, "i");
168MODULE_PARM(video_debug, "i"); // Grab the Debug Mode of the device driver 166MODULE_PARM(video_debug, "i"); // Grab the Debug Mode of the device driver
@@ -172,7 +170,6 @@ MODULE_PARM(SwitchSVideoInput, "i"); // To help people with Black and White ou
172MODULE_PARM(video_nr, "i"); // video_nr option allows to specify a certain /dev/videoX device (like /dev/video0 or /dev/video1 ...) 170MODULE_PARM(video_nr, "i"); // video_nr option allows to specify a certain /dev/videoX device (like /dev/video0 or /dev/video1 ...)
173MODULE_PARM(radio_nr, "i"); // radio_nr option allows to specify a certain /dev/radioX device (like /dev/radio0 or /dev/radio1 ...) 171MODULE_PARM(radio_nr, "i"); // radio_nr option allows to specify a certain /dev/radioX device (like /dev/radio0 or /dev/radio1 ...)
174MODULE_PARM(vbi_nr, "i"); // vbi_nr option allows to specify a certain /dev/vbiX device (like /dev/vbi0 or /dev/vbi1 ...) 172MODULE_PARM(vbi_nr, "i"); // vbi_nr option allows to specify a certain /dev/vbiX device (like /dev/vbi0 or /dev/vbi1 ...)
175MODULE_PARM(CustomDevice, "s"); // .... CustomDevice
176#endif 173#endif
177 174
178MODULE_PARM_DESC(isocMode, " Set the default format for ISOC endpoint. Default: 0x60 (Compression On)"); 175MODULE_PARM_DESC(isocMode, " Set the default format for ISOC endpoint. Default: 0x60 (Compression On)");
@@ -181,7 +178,6 @@ MODULE_PARM_DESC(PowerOnAtOpen, " Set the default device to power on when device
181MODULE_PARM_DESC(video_nr, "Set video device number (/dev/videoX). Default: -1 (autodetect)"); 178MODULE_PARM_DESC(video_nr, "Set video device number (/dev/videoX). Default: -1 (autodetect)");
182MODULE_PARM_DESC(radio_nr, "Set radio device number (/dev/radioX). Default: -1 (autodetect)"); 179MODULE_PARM_DESC(radio_nr, "Set radio device number (/dev/radioX). Default: -1 (autodetect)");
183MODULE_PARM_DESC(vbi_nr, "Set vbi device number (/dev/vbiX). Default: -1 (autodetect)"); 180MODULE_PARM_DESC(vbi_nr, "Set vbi device number (/dev/vbiX). Default: -1 (autodetect)");
184MODULE_PARM_DESC(CustomDevice, " Define the fine tuning parameters for the device. Default: null");
185 181
186 182
187// Misc stuff 183// Misc stuff
@@ -1944,143 +1940,6 @@ static struct usb_driver usbvision_driver = {
1944}; 1940};
1945 1941
1946/* 1942/*
1947 * customdevice_process()
1948 *
1949 * This procedure preprocesses CustomDevice parameter if any
1950 *
1951 */
1952static void customdevice_process(void)
1953{
1954 unsigned int id_vend,id_prod,radio,tuner;
1955
1956 usbvision_device_data[0]=usbvision_device_data[1];
1957 usbvision_table[0]=usbvision_table[1];
1958
1959 if(CustomDevice)
1960 {
1961 char *parse=CustomDevice;
1962 int tmp;
1963
1964 PDEBUG(DBG_PROBE, "CustomDevice=%s", CustomDevice);
1965
1966 /*format is CustomDevice="0x0573 0x4D31 0 7113 3 PAL 1 1 1 5 -1 -1 -1 -1 -1"
1967 usbvision_device_data[0].idVendor;
1968 usbvision_device_data[0].idProduct;
1969 usbvision_device_data[0].Interface;
1970 usbvision_device_data[0].Codec;
1971 usbvision_device_data[0].VideoChannels;
1972 usbvision_device_data[0].VideoNorm;
1973 usbvision_device_data[0].AudioChannels;
1974 usbvision_device_data[0].Radio;
1975 usbvision_device_data[0].Tuner;
1976 usbvision_device_data[0].TunerType;
1977 usbvision_device_data[0].Vin_Reg1;
1978 usbvision_device_data[0].Vin_Reg2;
1979 usbvision_device_data[0].X_Offset;
1980 usbvision_device_data[0].Y_Offset;
1981 usbvision_device_data[0].Dvi_yuv;
1982 usbvision_device_data[0].ModelString;
1983 */
1984
1985 rmspace(parse);
1986 usbvision_device_data[0].ModelString="USBVISION Custom Device";
1987
1988 parse+=2;
1989 sscanf(parse,"%u",&id_vend);
1990 usbvision_table[0].idVendor=id_vend;
1991
1992 goto2next(parse);
1993 PDEBUG(DBG_PROBE, "idVendor=0x%.4X", usbvision_table[0].idVendor);
1994 parse+=2;
1995 sscanf(parse,"%u",&id_prod);
1996 usbvision_table[0].idProduct=id_prod;
1997 goto2next(parse);
1998 PDEBUG(DBG_PROBE, "idProduct=0x%.4X", usbvision_table[0].idProduct);
1999 sscanf(parse,"%d",&usbvision_device_data[0].Interface);
2000 goto2next(parse);
2001 PDEBUG(DBG_PROBE, "Interface=%d", usbvision_device_data[0].Interface);
2002 sscanf(parse,"%hd",&usbvision_device_data[0].Codec);
2003 goto2next(parse);
2004 PDEBUG(DBG_PROBE, "Codec=%d", usbvision_device_data[0].Codec);
2005 sscanf(parse,"%d",&tmp);
2006 usbvision_device_data[0].VideoChannels = tmp;
2007 goto2next(parse);
2008 PDEBUG(DBG_PROBE, "VideoChannels=%d", usbvision_device_data[0].VideoChannels);
2009
2010 switch(*parse)
2011 {
2012 case 'P':
2013 PDEBUG(DBG_PROBE, "VideoNorm=PAL");
2014 usbvision_device_data[0].VideoNorm=V4L2_STD_PAL;
2015 break;
2016
2017 case 'S':
2018 PDEBUG(DBG_PROBE, "VideoNorm=SECAM");
2019 usbvision_device_data[0].VideoNorm=V4L2_STD_SECAM;
2020 break;
2021
2022 case 'N':
2023 PDEBUG(DBG_PROBE, "VideoNorm=NTSC");
2024 usbvision_device_data[0].VideoNorm=V4L2_STD_NTSC;
2025 break;
2026
2027 default:
2028 PDEBUG(DBG_PROBE, "VideoNorm=PAL (by default)");
2029 usbvision_device_data[0].VideoNorm=V4L2_STD_PAL;
2030 break;
2031 }
2032 goto2next(parse);
2033
2034 sscanf(parse,"%d",&tmp);
2035 usbvision_device_data[0].AudioChannels = tmp;
2036 goto2next(parse);
2037 PDEBUG(DBG_PROBE, "AudioChannels=%d", usbvision_device_data[0].AudioChannels);
2038 sscanf(parse,"%d",&radio);
2039 usbvision_device_data[0].Radio=(radio?1:0);
2040 goto2next(parse);
2041 PDEBUG(DBG_PROBE, "Radio=%d", usbvision_device_data[0].Radio);
2042 sscanf(parse,"%d",&tuner);
2043 usbvision_device_data[0].Tuner=(tuner?1:0);
2044 goto2next(parse);
2045 PDEBUG(DBG_PROBE, "Tuner=%d", usbvision_device_data[0].Tuner);
2046 sscanf(parse,"%hhu",&usbvision_device_data[0].TunerType);
2047 goto2next(parse);
2048 PDEBUG(DBG_PROBE, "TunerType=%d", usbvision_device_data[0].TunerType);
2049 sscanf(parse,"%d",&tmp);
2050 if(tmp>0) {
2051 usbvision_device_data[0].Vin_Reg1_override = 1;
2052 usbvision_device_data[0].Vin_Reg1 = tmp&0xff;
2053 }
2054 goto2next(parse);
2055 PDEBUG(DBG_PROBE, "Vin_Reg1=%d", usbvision_device_data[0].Vin_Reg1);
2056 sscanf(parse,"%d",&tmp);
2057 if(tmp>0) {
2058 usbvision_device_data[0].Vin_Reg2_override = 1;
2059 usbvision_device_data[0].Vin_Reg2 = tmp&0xff;
2060 }
2061 goto2next(parse);
2062 PDEBUG(DBG_PROBE, "Vin_Reg2=%d", usbvision_device_data[0].Vin_Reg2);
2063 sscanf(parse,"%hd",&usbvision_device_data[0].X_Offset);
2064 goto2next(parse);
2065 PDEBUG(DBG_PROBE, "X_Offset=%d", usbvision_device_data[0].X_Offset);
2066 sscanf(parse,"%hd",&usbvision_device_data[0].Y_Offset);
2067 goto2next(parse);
2068 PDEBUG(DBG_PROBE, "Y_Offset=%d", usbvision_device_data[0].Y_Offset);
2069 sscanf(parse,"%d",&tmp);
2070 if(tmp>0) {
2071 usbvision_device_data[0].Dvi_yuv_override = 1;
2072 usbvision_device_data[0].Dvi_yuv = tmp&0xff;
2073 }
2074 PDEBUG(DBG_PROBE, "Dvi_yuv=%d", usbvision_device_data[0].Dvi_yuv);
2075
2076 //add to usbvision_table also
2077 usbvision_table[0].match_flags=USB_DEVICE_ID_MATCH_DEVICE;
2078 }
2079}
2080
2081
2082
2083/*
2084 * usbvision_init() 1943 * usbvision_init()
2085 * 1944 *
2086 * This code is run to initialize the driver. 1945 * This code is run to initialize the driver.
@@ -2104,8 +1963,6 @@ static int __init usbvision_init(void)
2104 usbvision_v4l2_format[7].supported = 0; // V4L2_PIX_FMT_YUV422P 1963 usbvision_v4l2_format[7].supported = 0; // V4L2_PIX_FMT_YUV422P
2105 } 1964 }
2106 1965
2107 customdevice_process();
2108
2109 errCode = usb_register(&usbvision_driver); 1966 errCode = usb_register(&usbvision_driver);
2110 1967
2111 if (errCode == 0) { 1968 if (errCode == 0) {