V4L/DVB (5516): Reduce usbvision data size
authorMauro Carvalho Chehab <mchehab@infradead.org>
Sat, 14 Apr 2007 18:15:43 +0000 (15:15 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 27 Apr 2007 18:45:33 +0000 (15:45 -0300)
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>
drivers/media/video/usbvision/usbvision-cards.c
drivers/media/video/usbvision/usbvision-video.c
drivers/media/video/usbvision/usbvision.h

index c63048d..4ba9634 100644 (file)
@@ -1137,7 +1137,6 @@ struct usbvision_device_data_st  usbvision_device_data[] = {
                .Dvi_yuv       = -1,
                .ModelString   = "Hauppauge WinTv-USB",
        },
-       {}  /* Terminating entry */
 };
 
 /* Supported Devices */
@@ -1208,8 +1207,6 @@ struct usb_device_id usbvision_table [] = {
        { 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);
index 22c2889..49281ff 100644 (file)
@@ -1949,7 +1949,7 @@ static struct usb_driver usbvision_driver = {
  */
 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 @@ static void customdevice_process(void)
                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);
index 4639f34..b4412a5 100644 (file)
@@ -347,9 +347,9 @@ struct usbvision_device_data_st {
        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;