V4L/DVB (5516): Reduce usbvision data size
This patch reduces usbvision driver on about 1Kb on i386 over the
original version with the old struct:
text data bss dec hex filename
52312 11848 60 64220 fadc old/usbvision.ko
52474 10708 60 63242 f70a new/usbvision.ko
Acked-by: Thierry MERLE <thierry.merle@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/video/usbvision/usbvision-cards.c b/drivers/media/video/usbvision/usbvision-cards.c
index c63048d..4ba9634 100644
--- a/drivers/media/video/usbvision/usbvision-cards.c
+++ b/drivers/media/video/usbvision/usbvision-cards.c
@@ -1137,7 +1137,6 @@
.Dvi_yuv = -1,
.ModelString = "Hauppauge WinTv-USB",
},
- {} /* Terminating entry */
};
/* Supported Devices */
@@ -1208,8 +1207,6 @@
{ USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
{ USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
{ USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
-
- { } /* Terminating entry */
};
MODULE_DEVICE_TABLE (usb, usbvision_table);
diff --git a/drivers/media/video/usbvision/usbvision-video.c b/drivers/media/video/usbvision/usbvision-video.c
index 22c2889..49281ff 100644
--- a/drivers/media/video/usbvision/usbvision-video.c
+++ b/drivers/media/video/usbvision/usbvision-video.c
@@ -1949,7 +1949,7 @@
*/
static void customdevice_process(void)
{
- unsigned int id_vend,id_prod;
+ unsigned int id_vend,id_prod,radio,tuner;
usbvision_device_data[0]=usbvision_device_data[1];
usbvision_table[0]=usbvision_table[1];
@@ -2030,10 +2030,12 @@
sscanf(parse,"%d",&usbvision_device_data[0].AudioChannels);
goto2next(parse);
PDEBUG(DBG_PROBE, "AudioChannels=%d", usbvision_device_data[0].AudioChannels);
- sscanf(parse,"%d",&usbvision_device_data[0].Radio);
+ sscanf(parse,"%d",&radio);
+ usbvision_device_data[0].Radio=(radio?1:0);
goto2next(parse);
PDEBUG(DBG_PROBE, "Radio=%d", usbvision_device_data[0].Radio);
- sscanf(parse,"%d",&usbvision_device_data[0].Tuner);
+ sscanf(parse,"%d",&tuner);
+ usbvision_device_data[0].Tuner=(tuner?1:0);
goto2next(parse);
PDEBUG(DBG_PROBE, "Tuner=%d", usbvision_device_data[0].Tuner);
sscanf(parse,"%d",&usbvision_device_data[0].TunerType);
diff --git a/drivers/media/video/usbvision/usbvision.h b/drivers/media/video/usbvision/usbvision.h
index 4639f34..b4412a5 100644
--- a/drivers/media/video/usbvision/usbvision.h
+++ b/drivers/media/video/usbvision/usbvision.h
@@ -347,9 +347,9 @@
int VideoChannels;
__u64 VideoNorm;
int AudioChannels;
- int Radio;
- int vbi;
- int Tuner;
+ int Radio:1;
+ int vbi:1;
+ int Tuner:1;
int TunerType;
int Vin_Reg1;
int Vin_Reg2;