Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: refactoring



Kenneth Aafløy wrote:

On Friday 01 October 2004 15:49, Holger Waechtler wrote:

Please check the card list in the linuxtv wiki, most card types really come only with 1...3 demods used on this card.

From a quick check I counted 5 for dvb-ttpci.

not after you splitted this into dvb-s, dvb-t and dvb-c variants (which differ anyways, dvb-c variants exist with onboard analog tuner, dvb-s needs the DiSEqC implementation).

stripped-down frontend drivers are a few 100bytes ... 2.5kB which is
kind of tiny compared to the i2c core. Most card drivers will get linked
together with less than 3 frontend drivers.

I need a copy of your compiler, as it has an extremely effective size optimizer :) Mine comes out as ~160kb without ksyms and with size opt.

Here as example the TDMB7 symbol table (created with objdump):

alps_tdmb7.o: file format elf32-i386
SYMBOL TABLE:
00000000 l df *ABS* 00000000 alps_tdmb7.c
00000040 l O .modinfo 00000026 __mod_description529
00000066 l O .modinfo 00000018 __mod_author530
0000007e l O .modinfo 0000000c __mod_license531
00000011 l O .rodata 00000010 __func__.1
00000021 l O .rodata 0000000a __func__.2
0000002b l O .rodata 00000010 __func__.3
0000003b l O .rodata 00000016 __func__.4
00000051 l O .rodata 00000010 __func__.5
00000061 l O .rodata 00000004 qam_tab.6
00000065 l O .rodata 00000006 fec_tab.7
0000006b l O .rodata 00000010 __func__.8
0000007c l O .rodata 0000000c qam_tab.9
00000088 l O .rodata 00000014 fec_tab.10
0000009c l O .rodata 0000000c __func__.11
000000a8 l O .rodata 0000000f __func__.12
000000b7 l O .rodata 0000000e __func__.13
000000c5 l O .rodata 00000008 __func__.14
00000020 l O .data 000000a8 tdmb7_info
000000e0 l O .data 00000024 init_tab
00000120 l O .data 000000b0 driver
000001e0 l O .data 0000011c client_template
000000c0 l F .text 000000a7 cx22700_readreg
00000170 l F .text 000000a9 pll_write
00000220 l F .text 000000a0 pll_set_tv_freq
000002c0 l F .text 000000b7 cx22700_init
00000380 l F .text 000000aa cx22700_set_inversion
00000430 l F .text 0000019a cx22700_set_tps
000005d0 l F .text 0000012a cx22700_get_tps
00000700 l F .text 000002da tdmb7_ioctl
000009e0 l F .text 0000019a attach_adapter
00000b80 l F .text 0000007d detach_client
00000c00 l F .text 0000006f command

0x440/1088 bytes demod-related code,
0x150/336 bytes PLL-related code,
0x2e0/736 bytes ioctl wrapper implementation (obsolete if we use a typesafe functionpointer-in-sturct interface between card and demod driver instead).
0x40/64 bytes inttab (would get moved into the card driver because it depends on the used crystal and external components of the demod)

Everything else is kernel i2c infrastructure and module setup stuff. This driver is an average example, a minimal mt352 driver including the scan code has about 600 bytes running on a microcontroller (in another non-linux project we did last time. The early linux-mt352 driver was a side product of this one...)

Holger





Home | Main Index | Thread Index