login
Header Space

 
 

Re: Linux 2.6.26-rc1

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Stefan Richter <stefanr@...>
Cc: Alistair John Strachan <alistair@...>, Robin Holt <holt@...>, Linus Torvalds <torvalds@...>, Linux Kernel Mailing List <linux-kernel@...>
Date: Tuesday, May 6, 2008 - 3:13 pm

On Tue, 06 May 2008 16:34:27 +0200
Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:


True, unfortunately.


This is easy to maintain, if you have just a few selects, but this is not the
case of V4L drivers. Look some examples:

IVTV driver:

config VIDEO_IVTV
        tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support"
        depends on VIDEO_V4L1 && VIDEO_V4L2 && PCI && I2C && EXPERIMENTAL
        select I2C_ALGOBIT
        select FW_LOADER
        select VIDEO_IR
        select MEDIA_TUNER
        select VIDEO_TVEEPROM
        select VIDEO_CX2341X
        select VIDEO_CX25840
        select VIDEO_MSP3400
        select VIDEO_SAA711X
        select VIDEO_SAA717X
        select VIDEO_SAA7127
        select VIDEO_TVAUDIO
        select VIDEO_CS53L32A
        select VIDEO_M52790
        select VIDEO_WM8775
        select VIDEO_WM8739
        select VIDEO_VP27SMPX
        select VIDEO_UPD64031A
        select VIDEO_UPD64083

config VIDEO_FB_IVTV
        tristate "Conexant cx23415 framebuffer support"
        depends on VIDEO_IVTV && FB && EXPERIMENTAL
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT


(btw, on above, IVTV is missing INPUT)

This is Cx88 driver:

config VIDEO_CX88
        tristate "Conexant 2388x (bt878 successor) support"
        depends on VIDEO_DEV && PCI && I2C && INPUT
        select I2C_ALGOBIT
        select FW_LOADER
        select VIDEO_BTCX
        select VIDEOBUF_DMA_SG
        select MEDIA_TUNER
        select VIDEO_TVEEPROM
        select VIDEO_IR
        select VIDEO_WM8775 if VIDEO_HELPER_CHIPS_AUTO

config VIDEO_CX88_ALSA
        tristate "Conexant 2388x DMA audio support"
        depends on VIDEO_CX88 && SND && EXPERIMENTAL
        select SND_PCM

config VIDEO_CX88_BLACKBIRD
        tristate "Blackbird MPEG encoder support (cx2388x + cx23416)"
        depends on VIDEO_CX88
        select VIDEO_CX2341X

config VIDEO_CX88_DVB
        tristate "DVB/ATSC Support for cx2388x based TV cards"
        depends on VIDEO_CX88 && DVB_CORE
        select VIDEOBUF_DVB
        select DVB_PLL if !DVB_FE_CUSTOMISE
        select DVB_MT352 if !DVB_FE_CUSTOMISE
        select DVB_ZL10353 if !DVB_FE_CUSTOMISE
        select DVB_OR51132 if !DVB_FE_CUSTOMISE
        select DVB_CX22702 if !DVB_FE_CUSTOMISE
        select DVB_LGDT330X if !DVB_FE_CUSTOMISE
        select DVB_NXT200X if !DVB_FE_CUSTOMISE
        select DVB_CX24123 if !DVB_FE_CUSTOMISE
        select DVB_ISL6421 if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
        select DVB_S5H1411 if !DVB_FE_CUSTOMISE

(here, FW_LOADER is at the wrong sub-driver - it should be at CX88_DVB - and
HOTPLUG dependency is missing)

Ok, most of those select's have the same set of dependencies. Yet, it is really
hard to maintain. The result is that almost every new driver has some missing
dependencies.

Those two drivers are just two examples where I found some bugs today. Most of
the drivers have dozens of select. 

You may argue to not use select, but it is really hard to avoid, since each of
those main drivers (cx88, ivtv, bttv, etc) supports a large number of different
devices, that needs different chips. Most V4L/DVB devices has an internal I2C
bus that gives the flexibility for the board manufacturers to add/replace the
internal components at the i2c bus. So, the Kernel uses abstraction layers that
allows that the same driver to use different internal components.

What the Kbuild system does is to autoselect, by default, all drivers that
might be needed, in order to support all variants. At runtime (if module), only
the drivers effectively needed will be loaded. Advanced users have the option
of manually select the needed drivers, if they are 100% sure of what their
device needs (generally, this is valuable only for embedded systems).

Cheers,
Mauro
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Linux 2.6.26-rc1, Linus Torvalds, (Sat May 3, 3:38 pm)
Re: Scheduling problems ? [ Was: Linux 2.6.26-rc1 ], Ingo Molnar, (Tue May 6, 9:11 am)
Re: Linux 2.6.26-rc1, Andreas Mohr, (Mon May 5, 1:39 am)
Re: Linux 2.6.26-rc1, Ingo Molnar, (Mon May 5, 3:30 am)
Re: Linux 2.6.26-rc1, Stephen Rothwell, (Mon May 5, 7:51 pm)
Re: Linux 2.6.26-rc1, Ingo Molnar, (Mon May 5, 8:17 pm)
Re: Linux 2.6.26-rc1, Stephen Rothwell, (Tue May 6, 1:48 am)
Re: Linux 2.6.26-rc1, David Miller, (Mon May 5, 7:55 pm)
Re: Linux 2.6.26-rc1, Stephen Rothwell, (Tue May 6, 1:35 am)
Re: Linux 2.6.26-rc1, David Miller, (Tue May 6, 2:56 am)
Re: Linux 2.6.26-rc1, Stephen Rothwell, (Tue May 6, 3:26 am)
Re: Linux 2.6.26-rc1, Ingo Molnar, (Mon May 5, 8:21 pm)
Re: Linux 2.6.26-rc1, Andrew Morton, (Mon May 5, 8:16 pm)
Re: Linux 2.6.26-rc1, Stephen Rothwell, (Tue May 6, 1:57 am)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Mon May 5, 4:14 pm)
Re: Linux 2.6.26-rc1, Ingo Molnar, (Tue May 6, 9:07 am)
Re: Linux 2.6.26-rc1, Ingo Molnar, (Wed May 7, 4:35 am)
Re: Linux 2.6.26-rc1, Jan Engelhardt, (Sun May 4, 2:40 pm)
[patch] sysfs: build fix, Ingo Molnar, (Sun May 4, 3:29 am)
Re: Linux 2.6.26-rc1, Alistair John Strachan, (Sat May 3, 5:47 pm)
Re: Linux 2.6.26-rc1, Alistair John Strachan, (Sat May 3, 5:53 pm)
Re: Linux 2.6.26-rc1, Robin Holt, (Sun May 4, 8:30 am)
Re: Linux 2.6.26-rc1, Alistair John Strachan, (Sun May 4, 9:56 am)
Re: Linux 2.6.26-rc1, Robin Holt, (Sun May 4, 12:09 pm)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Mon May 5, 5:04 pm)
Re: Linux 2.6.26-rc1, Alistair John Strachan, (Tue May 6, 4:02 am)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Tue May 6, 6:31 am)
Re: Linux 2.6.26-rc1, Stefan Richter, (Tue May 6, 10:34 am)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Tue May 6, 3:13 pm)
Re: Linux 2.6.26-rc1, Stefan Richter, (Tue May 6, 3:44 pm)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Tue May 6, 4:06 pm)
Re: Linux 2.6.26-rc1, Stefan Richter, (Tue May 6, 4:47 pm)
Re: Linux 2.6.26-rc1, Stefan Richter, (Tue May 6, 7:48 pm)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Tue May 6, 6:39 pm)
Re: Linux 2.6.26-rc1, Stefan Richter, (Tue May 6, 7:36 pm)
Re: Linux 2.6.26-rc1, Mauro Carvalho Chehab, (Thu May 8, 8:48 am)
Re: Linux 2.6.26-rc1, Stefan Richter, (Thu May 8, 10:11 am)
Re: Linux 2.6.26-rc1, Stefan Richter, (Tue May 6, 10:54 am)
Re: Linux 2.6.26-rc1, Alistair John Strachan, (Sun May 4, 12:33 pm)
speck-geostationary