aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-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
3 files changed, 64 insertions, 223 deletions
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) {