summary refs log tree commit diff
path: root/drivers/media/video/usbvision/usbvision-cards.c
diff options
context:
space:
mode:
authorTrent Piepho <xyzzy@speakeasy.org>2007-04-14 15:16:26 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 15:45:34 -0300
commitc682b3a7fb8ec69ac73511bbb6a378e40aa35f35 (patch)
tree443ac5b210222822c3f4883964defd2404601d7a /drivers/media/video/usbvision/usbvision-cards.c
parentf7ca6256bc1db4fb44adda99e082f8c80ada8957 (diff)
downloadlinux-c682b3a7fb8ec69ac73511bbb6a378e40aa35f35.tar.gz
V4L/DVB (5517): Usbvision: store the device database more efficiently
One bit wide bitfields need to declared unsigned to have the range 0 to
1, or they have the range -1 to 0.

A few techniques to reduce the driver's size by about 1700 bytes on ia32,
probably more on x86-64.

Put the biggest fields first, less padding is necessary that way.

Put fields with a limited range into a smaller type.  For example
VideoChannels will fit in 3 bits, and TunerType can use 8 bits.

Vin_Reg1, Vin_Reg2, and Dvi_yuv define values for 8-bit registers, but
they can't just go into an 8-bit field with no changes, since -1 was used
as a flag to indicate a value was not present.  So what we do is create a
one-bit flag for each one to indicate if a value is or is not present.

This only takes 9 bits and has the added advantage that when the register
isn't overridden (Vin_Reg[12] never are) it doesn't need to appear in the
structure definition since the default value for the flag will be zero.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Thierry MERLE <thierry.merle@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/usbvision/usbvision-cards.c')
-rw-r--r--drivers/media/video/usbvision/usbvision-cards.c195
1 files changed, 42 insertions, 153 deletions
diff --git a/drivers/media/video/usbvision/usbvision-cards.c b/drivers/media/video/usbvision/usbvision-cards.c
index 4ba96349e76b..c632f125252c 100644
--- a/drivers/media/video/usbvision/usbvision-cards.c
+++ b/drivers/media/video/usbvision/usbvision-cards.c
@@ -42,11 +42,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Custom Dummy USBVision Device",
 	},
 	[XANBOO] = {
@@ -59,11 +56,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Xanboo",
 	},
 	[BELKIN_VIDEOBUS_II] = {
@@ -76,10 +70,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Belkin USB VideoBus II Adapter",
 	},
@@ -93,11 +86,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Belkin Components USB VideoBus",
 	},
 	[BELKIN_USB_VIDEOBUS_II] = {
@@ -110,10 +100,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Belkin USB VideoBus II",
 	},
@@ -127,10 +116,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "echoFX InterView Lite",
 	},
@@ -144,11 +132,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "USBGear USBG-V1 resp. HAMA USB",
 	},
 	[D_LINK_V100] = {
@@ -161,10 +146,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "D-Link V100",
 	},
@@ -178,11 +162,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "X10 USB Camera",
 	},
 	[HPG_WINTV_LIVE_PAL_BG] = {
@@ -195,10 +176,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Live (PAL B/G)",
 	},
@@ -212,10 +192,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Live Pro (NTSC M/N)",
 	},
@@ -229,10 +208,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Zoran Co. PMD (Nogatech) AV-grabber Manhattan",
 	},
@@ -246,11 +224,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = 20,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Nogatech USB-TV (NTSC) FM",
 	},
 	[PNY_USB_TV_NTSC_FM] = {
@@ -263,11 +238,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = 20,
-		.Dvi_yuv       = -1,
 		.ModelString   = "PNY USB-TV (NTSC) FM",
 	},
 	[PV_PLAYTV_USB_PRO_PAL_FM] = {
@@ -280,10 +252,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "PixelView PlayTv-USB PRO (PAL) FM",
 	},
@@ -297,10 +268,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "ZTV ZT-721 2.4GHz USB A/V Receiver",
 	},
@@ -314,11 +284,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = 20,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (NTSC M/N)",
 	},
 	[HPG_WINTV_PAL_BG] = {
@@ -331,11 +298,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL B/G)",
 	},
 	[HPG_WINTV_PAL_I] = {
@@ -348,11 +312,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL I)",
 	},
 	[HPG_WINTV_PAL_SECAM_L] = {
@@ -365,11 +326,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_SECAM,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL/SECAM L)",
 	},
 	[HPG_WINTV_PAL_D_K] = {
@@ -382,11 +340,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL D/K)",
 	},
 	[HPG_WINTV_NTSC_FM] = {
@@ -399,11 +354,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (NTSC FM)",
 	},
 	[HPG_WINTV_PAL_BG_FM] = {
@@ -416,11 +368,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL B/G FM)",
 	},
 	[HPG_WINTV_PAL_I_FM] = {
@@ -433,11 +382,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL I FM)",
 	},
 	[HPG_WINTV_PAL_D_K_FM] = {
@@ -450,11 +396,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTV USB (PAL D/K FM)",
 	},
 	[HPG_WINTV_PRO_NTSC_MN] = {
@@ -467,10 +410,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_MICROTUNE_4049FM5,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N)",
 	},
@@ -484,10 +426,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_MICROTUNE_4049FM5,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N) V2",
 	},
@@ -501,10 +442,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_FM1216ME_MK3,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)",
 	},
@@ -518,10 +458,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N) V3",
 	},
@@ -535,10 +474,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL B/G)",
 	},
@@ -552,10 +490,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL I)",
 	},
@@ -569,10 +506,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_SECAM,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM L)",
 	},
@@ -586,10 +522,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL D/K)",
 	},
@@ -603,10 +538,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_SECAM,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)",
 	},
@@ -620,10 +554,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_SECAM,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2",
 	},
@@ -637,10 +570,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_ALPS_TSBE1_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL B/G) V2",
 	},
@@ -654,10 +586,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_ALPS_TSBE1_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL B/G,D/K)",
 	},
@@ -671,10 +602,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL I,D/K)",
 	},
@@ -688,10 +618,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N FM)",
 	},
@@ -705,10 +634,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL B/G FM)",
 	},
@@ -722,10 +650,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL I FM)",
 	},
@@ -739,10 +666,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL D/K FM)",
 	},
@@ -756,10 +682,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_MICROTUNE_4049FM5,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)",
 	},
@@ -773,10 +698,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_MICROTUNE_4049FM5,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (Temic PAL B/G FM)",
 	},
@@ -790,10 +714,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_FM1216ME_MK3,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)",
 	},
@@ -807,10 +730,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Hauppauge WinTV USB Pro (NTSC M/N FM) V2",
 	},
@@ -824,11 +746,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 5,
 		.Y_Offset      = 5,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Camtel Technology USB TV Genie Pro FM Model TVB330",
 	},
 	[DIGITAL_VIDEO_CREATOR_I] = {
@@ -841,10 +760,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Digital Video Creator I",
 	},
@@ -858,10 +776,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 82,
 		.Y_Offset      = 20,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Global Village GV-007 (NTSC)",
 	},
@@ -875,10 +792,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)",
 	},
@@ -892,10 +808,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Dazzle Fusion Model DVC-80 Rev 1 (PAL)",
 	},
@@ -909,10 +824,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)",
 	},
@@ -926,10 +840,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_FM1216ME_MK3,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Eskape Labs MyTV2Go",
 	},
@@ -943,11 +856,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 0,
 		.Tuner         = 1,
 		.TunerType     = TUNER_TEMIC_4066FY5_PAL_I,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Pinnacle Studio PCTV USB (PAL)",
 	},
 	[PINNA_PCTV_USB_SECAM] = {
@@ -960,11 +870,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_SECAM,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Pinnacle Studio PCTV USB (SECAM)",
 	},
 	[PINNA_PCTV_USB_PAL_FM] = {
@@ -977,11 +884,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 128,
 		.Y_Offset      = 23,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Pinnacle Studio PCTV USB (PAL) FM",
 	},
 	[MIRO_PCTV_USB] = {
@@ -994,11 +898,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Miro PCTV USB",
 	},
 	[PINNA_PCTV_USB_NTSC_FM] = {
@@ -1011,11 +912,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Pinnacle Studio PCTV USB (NTSC) FM",
 	},
 	[PINNA_PCTV_USB_PAL_FM_V2] = {
@@ -1028,10 +926,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_TEMIC_4009FR5_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Pinnacle Studio PCTV USB (PAL) FM V2",
 	},
@@ -1045,10 +942,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_TEMIC_4039FR5_NTSC,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Pinnacle Studio PCTV USB (NTSC) FM V2",
 	},
@@ -1062,10 +958,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_TEMIC_4009FR5_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Pinnacle Studio PCTV USB (PAL) FM V3",
 	},
@@ -1079,10 +974,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Pinnacle Studio Linx Video input cable (NTSC)",
 	},
@@ -1096,10 +990,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 0,
 		.TunerType     = 0,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Pinnacle Studio Linx Video input cable (PAL)",
 	},
@@ -1113,10 +1006,9 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_TEMIC_4009FR5_PAL,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = 0,
 		.Y_Offset      = 3,
+		.Dvi_yuv_override = 1,
 		.Dvi_yuv       = 7,
 		.ModelString   = "Pinnacle PCTV Bungee USB (PAL) FM",
 	},
@@ -1130,11 +1022,8 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
 		.vbi           = 1,
 		.Tuner         = 1,
 		.TunerType     = TUNER_PHILIPS_NTSC_M,
-		.Vin_Reg1      = -1,
-		.Vin_Reg2      = -1,
 		.X_Offset      = -1,
 		.Y_Offset      = -1,
-		.Dvi_yuv       = -1,
 		.ModelString   = "Hauppauge WinTv-USB",
 	},
 };