• Trent Piepho's avatar
    V4L/DVB (10561): bttv: store card database more efficiently · 4c548d4b
    Trent Piepho authored
    The bttv card database is quite large and the data structure used to store
    it wasn't very efficient.  Most of the field are only used at card
    initialization time so it doesn't matter if they aren't efficient to
    access.
    
    Overall the changes reduce code size by 60 bytes in ia32.  The data size is
    decreased by 5024 byes.  It is probably even more for 64-bit kernels.
    
    Move the fields in the struct around to be sorted from largest to smallest.
    This saves on padding space used for alignment.
    
    Get rid of the unused digital_mode field.  Leave the setting as a comment
    in the few cards entries that set it, in case someone ever writes the code.
    
    Get rid of the unused audio_inputs field.  Leave the values in the card
    entries in case someone ever writes code that might use it.
    
    Get ride of the unused radio_addr field.  No card entries even set it to
    anything interesting so it's not left as comments.  All the code that used
    it was removed in commit v2.6.14-3466-g291d1d73 from Nov 8th 2005.
    
    Reduce video_inputs to u8 as no card has more than 255 inputs (the most is
    16).
    
    Change tuner_addr to u8.  I2C addresses are only seven bits and 255 means
    ADDR_UNSET, so everything fits.
    
    Make has_radio a one bit flag.
    
    Make the pll setting a two bit field.
    
    Reduce svhs to four bits as no card has an s-video input above 9.  Change
    the value for no s-video input from UNSET (which is -1U and out of range of
    four bits) to NO_SVHS (which is now 15).
    Signed-off-by: default avatarTrent Piepho <xyzzy@speakeasy.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    4c548d4b
bttv-cards.c 137 KB