Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (5530): Usbvision: remove CustomDevice facility

usbvision has a module parameter that ables the user to add a new USB
entry at driver load. This functionality is useless by experience
(adding statically the entry is easy).

Furthermore, the USB_DEVICE(0xfff0, 0xfff0) USB entry caused
usbvision_probe to be called for all unclaimed devices.

Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Acked-by: Dwaine Garden <DwaineGarden@rogers.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

authored by

Thierry MERLE and committed by
Mauro Carvalho Chehab
ec709bb8 25f30389

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