> Anyway, the structure can be made even smaller, -1700 bytes overall change > by my count (*). See linked patch. Seems very interesting. There are still some possible optimizations: 1) Just remove Vin_Reg1/Vin_Reg2 from the table, since it is not used on the devices itself, but only when overrided at the generic board. There's no sense having those values there. The driver should store those values at another struct, when overrided by the user; 2) Merge all Hauppauge entries into just one, and use tveeprom to autodetect tuner and codec. However, tveeprom footprint is 11375 bytes. So, this will make the allocated kernelspace bigger, even with the possible optimization savings, when a Hauppauge usbvision device is used. Wowever, it will allow usbvision to work also with other hauppauge variants that might not be supported yet. So, it is a tradeoff of functionality and kernelspace size. 3) Instead of adding those parsers for the "generic" board, add a static var for the overrided parameters, just like the other drivers. The data size won't change much (since currently, you have those values at entry 0, but the code size will reduce by removing most of the parsing code. This will also make the override option clearer, IMO. > 01/01: usbvision: store the device database more efficiently > http://linuxtv.org/hg/~tap/usbvision?cmd=changeset;node=7957ba367757 > > usbvision-cards.c | 431 ++++++++++++++++++++---------------------------------- > usbvision-core.c | 8 - > usbvision-video.c | 37 +++- > usbvision.h | 31 ++- > 4 files changed, 207 insertions(+), 300 deletions(-) > > > (*) counted like this: > objdump -h usbvision.ko | > awk '/bss|text|data/&&!/init/{print x=strtonum("0x"$3),"\t",s+=x,$2;}' -- Cheers, Mauro _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb