From: Trent Piepho Date: Sat, 14 Apr 2007 18:16:26 +0000 (-0300) Subject: V4L/DVB (5517): Usbvision: store the device database more efficiently X-Git-Tag: v2.6.22-rc1~1118^2~37 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c682b3a7fb8ec69ac73511bbb6a378e40aa35f35;p=pandora-kernel.git 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 Acked-by: Thierry MERLE Signed-off-by: Mauro Carvalho Chehab --- Reading git-diff-tree failed