From: Mauro Carvalho Chehab <mchehab@infradead.org>
To: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: Alistair John Strachan <alistair@devzero.co.uk>,
Robin Holt <holt@sgi.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Linux 2.6.26-rc1
Date: Tue, 6 May 2008 17:06:23 -0300 [thread overview]
Message-ID: <20080506170623.53732e78@gaivota> (raw)
In-Reply-To: <4820B524.5080100@s5r6.in-berlin.de>
On Tue, 06 May 2008 21:44:36 +0200
Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
> Mauro Carvalho Chehab wrote:
> > On Tue, 06 May 2008 16:34:27 +0200
> > Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
> >> But it is /trivial/ to fix. If A selects B, you have to copy all of B's
> >> dependencies to A or select these dependencies by A.
> >>
> >> So it's totally simple to do it right. The only nuisance is that you
> >> always have to update B's dependencies and selections whenever A's
> >> dependencies are changed.
> >
> > 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:
> [...]
> > 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.
>
> Shouldn't layers actually untangle dependencies, i.e. concentrate
> dependencies? A "high-level driver" does not depend on "low-level
> drivers" and the low-level drivers' dependencies anymore. It only
> depends on a "core driver" and on foreign subsystem APIs.
> And yes, the core driver may very well provide some functionality which
> not all of the high-level drivers need, or not all of the low-level
> drivers are able to support.
>
> (All theoretical since I have no idea of what kinds of modules of
> functionality you have/need and whether it really can be simpler organized.)
This is the way it is designed.
For example, if you have a em28xx device with msp3400 and tvp5150 and another
em28xx device with saa7113.
If you remove the select's for MSP3400, TVP5150 and SAA7113, at, em28xx, the
module will compile without problems.
The only issue is that you won't be able to see any images (due to the lack of
tvp5150 or saa7113 analog TV demoduler) or listen to the audio, if the device
needs msp3400 to decode audio.
So, you'll just spend kernelspace for a completely useless driver ;)
Ok, let's consider a scenario where there are 3 options, for each of the above.
Now, the user will need to open the USB stick, without breaking anything,
to identify what chips it have inside the internal i2c bus, before compiling the kernel.
Also, since V4L/DVB has more than 230 drivers (most of them are those I2C
helper drivers), the number of items for the user to understand and select will
be huge.
It is much better for the user to just select EM28XX and let the Kconfig do the
hard work of selecting what low-level driver applies for em28xx-based devices.
This causes lots of select, being very hard to maintain. The better would be to
have a select-like clause that could check the dependencies automatically.
Another alternative would be some sort of script (checkpatch.pl?) that would
check if all selected dependencies are ok.
Cheers,
Mauro
next prev parent reply other threads:[~2008-05-06 20:07 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <8287f540805041818g534c4e02qaadb0e749c5f3439@mail.gmail.com>
2008-05-03 19:38 ` Linus Torvalds
2008-05-03 21:47 ` Alistair John Strachan
2008-05-03 21:53 ` Alistair John Strachan
2008-05-04 12:30 ` Robin Holt
2008-05-04 13:56 ` Alistair John Strachan
2008-05-04 16:09 ` Robin Holt
2008-05-04 16:33 ` Alistair John Strachan
2008-05-05 21:04 ` Mauro Carvalho Chehab
2008-05-06 8:02 ` Alistair John Strachan
2008-05-06 10:31 ` Mauro Carvalho Chehab
2008-05-06 14:34 ` Stefan Richter
2008-05-06 14:54 ` Stefan Richter
2008-05-06 19:13 ` Mauro Carvalho Chehab
2008-05-06 19:44 ` Stefan Richter
2008-05-06 20:06 ` Mauro Carvalho Chehab [this message]
2008-05-06 20:47 ` Stefan Richter
2008-05-06 22:39 ` Mauro Carvalho Chehab
2008-05-06 23:36 ` Stefan Richter
2008-05-08 12:48 ` Mauro Carvalho Chehab
2008-05-08 14:11 ` Stefan Richter
2008-05-06 23:48 ` Stefan Richter
2008-05-04 7:29 ` [patch] sysfs: build fix Ingo Molnar
2008-05-04 18:40 ` Linux 2.6.26-rc1 Jan Engelhardt
2008-05-05 5:39 ` Andreas Mohr
2008-05-05 7:30 ` Ingo Molnar
2008-05-05 20:14 ` Mauro Carvalho Chehab
2008-05-06 13:07 ` Ingo Molnar
2008-05-07 8:35 ` Ingo Molnar
2008-05-05 23:51 ` Stephen Rothwell
2008-05-05 23:55 ` David Miller
2008-05-06 0:16 ` Andrew Morton
2008-05-06 5:57 ` Stephen Rothwell
2008-05-06 0:21 ` Ingo Molnar
2008-05-06 5:35 ` Stephen Rothwell
2008-05-06 6:56 ` David Miller
2008-05-06 7:26 ` Stephen Rothwell
2008-05-06 0:17 ` Ingo Molnar
2008-05-06 5:48 ` Stephen Rothwell
2008-05-06 6:07 ` Scheduling problems ? [ Was: Linux 2.6.26-rc1 ] J.A. Magallón
2008-05-06 13:11 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080506170623.53732e78@gaivota \
--to=mchehab@infradead.org \
--cc=alistair@devzero.co.uk \
--cc=holt@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stefanr@s5r6.in-berlin.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®