[linux-dvb] [PATCH] Moving ALPS BSRV2 tuner handling code to
xyzzy at speakeasy.org
Mon Apr 17 01:14:48 CEST 2006
On Sun, 16 Apr 2006, Perceval Anichini wrote:
> > Seems to work fine. I added non-static global functions with the same name to
> > two modules, and they loaded fine, each calling their own version of the
> > function. Not exactly the same as pulling the function in when the module
> > is linked at compile time, but I think that will work too.
> Using a static library will duplicate binary code into different
> modules as well, no ?
I listed this as a downside in my first message. The code duplication only
matters if you load multiple drivers, which isn't common. Even with multiple
drivers, the duplicated code doesn't ammount to much, possibly less than the
overhead of trying to avoid duplicating it.
> Couldn't we build a single 'frontends' module that would
> include all tuners and demodulator selected by the user during the
> kernel configuration step ?
The problem with this is that the 'frontends' module will contain code for
every single supported frontend. This will probably waste way more space than
duplicating code in multiple drivers. You could add some code to Kconfig, so
that each enabled driver turns on the frontends it needs. This doesn't help
unless the user compiles a custom kernel, and they still get code for every
supported frontend, even if they don't load a driver that needs it.
So either way, you end up with waste. In the common case of someone with a
single DVB card, the first method has the least waste and there is no extra
waste to support many cards. In the case of someone with multiple DVB cards,
which method is better depends on the overlap between the drivers and how many
extra cards are suported, but the second method is probably better.
More information about the linux-dvb