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 --
| Alan Cox | [PATCH 00/76] Queued TTY Patches |
| Nick Piggin | [patch 1/6] mm: debug check for the fault vs invalidate race |
| Andi Kleen | [PATCH] [1/22] x86_64: dma_ops as const |
| Linus Torvalds | Linux 2.6.27-rc8 |
git: | |
| Jeff King | Re: What's cooking in git/spearce.git (topics) |
| Jeff King | Re: [RFC] origin link for cherry-pick and revert |
| Matt Seitz (matseitz) | Symbolic link documentation |
| Jon Smirl | Huge win, compressing a window of delta runs as a unit |
| Richard Stallman | Real men don't attack straw men |
| Leon Dippenaar | New tcp stack attack |
| Nuno Magalhães | Can't scp, ssh is slow to authenticate. |
| Brandon Lee | DELL PERC 5iR slow performance |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Denys Vlasenko | Re: bnx2 dirver's firmware images |
| Pavel Emelyanov | [PATCH 0/8] Cleanup/fix the sk_alloc() call |
| Kok, Auke | Re: [PATCH] drivers/net: remove network drivers' last few uses of IRQF_SAMPLE_RANDOM |
