[linux-dvb] Re: [Patch] USBVision - Fix NT1005 Bridge detection

Mauro Carvalho Chehab mchehab at infradead.org
Sat Apr 14 14:44:15 CEST 2007

> 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;}'

More information about the linux-dvb mailing list