From: Stefan Richter <stefanr@s5r6.in-berlin.de>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>,
"Maciej W. Rozycki" <macro@linux-mips.org>,
Rusty Russell <rusty@rustcorp.com.au>,
Russell King <linux@arm.linux.org.uk>,
Michael Buesch <mb@bu3sch.de>,
linux-pcmcia@lists.infradead.org, linux-kernel@vger.kernel.org,
Florian Fainelli <florian@openwrt.org>,
James Bottomley <James.Bottomley@hansenpartnership.com>,
Alexandre Bounine <alexandre.bounine@idt.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
"Ben Dooks \(embedded platforms\)" <ben-linux@fluff.org>,
Jean Delvare <khali@linux-fr.org>,
spi-devel-general@lists.sourceforge.net,
Matt Porter <mporter@kernel.crashing.org>,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH] spi: reorganize drivers
Date: Mon, 6 Jun 2011 15:44:47 +0200 [thread overview]
Message-ID: <20110606154447.51f07c7b@stein> (raw)
In-Reply-To: <201106061457.43999.arnd@arndb.de>
On Jun 06 Arnd Bergmann wrote:
> On Monday 06 June 2011, Jean Delvare wrote:
> > On Mon, 6 Jun 2011 13:21:07 +0200, Arnd Bergmann wrote:
> > > A top-level /bus would work for me, and I guess would also address Russell's
> > > concern. Regarding bus-specific drivers, we're gradually moving those out
> > > of the bus specific directories anyway, basically the only bus directory
> > > that really has device driver in it is USB at this point. It makes some
> > > sense to have a bus-specific low-level user space interface driver like
> > > sg or uio in the bus directory, but everything else should really belong
> > > into some other subsystem.
> >
> > Err, what about I2C and SPI? Aren't drivers/i2c/busses and drivers/spi
> > full of "device drivers"? Or are these what you call "bus-specific
> > drivers"? Maybe we need to define all the terms before the discussion
> > continues further.
>
> drivers/i2c/busses and drivers/spi are full of what I would call "bus
> drivers" or "host drivers". They bind to a device from another bus
> (platform, pci, ...) and export devices of their own type (i2c, spi, ...).
> This is what all bus drivers do.
>
> An i2c or spi device driver would in turn bind to that device and
> provide a functionality not specific to that bus (e.g. hwmon, input,
> leds, rtc or media).
>
> > > (...)
> > > This is about to get worse as we introduce new subsystems (e.g. iommu,
> > > irq, clocksource, eeprom, nvram, ...) into which we are moving
> > > code from arch/arm, drivers/char and drivers/misc. Having buses and
> > > drivers in a separate hierarchy would make the drivers directory and
> > > the respective menuconfig list more clearly structured IMHO.
> >
> > This gets interesting. Would you suggest for example that i2c-core.c
> > goes to bus/i2c, and drivers/i2c/busses becomes drivers/i2c? And that
> > CONFIG_I2C is somewhere in menuconfig, and the hardware driver
> > selection for drivers/i2c is in a totally different place?
>
> No, all of drivers/i2c would go into bus/i2c or drivers/bus/i2c, there
> is no point splitting that. The part that would no go there is the various
> drivers that are already not under drivers/i2c but are for devices
> connected to an i2c bus.
>
> The confusion is probably that in case of drivers/scsi and drivers/usb,
> both bus and device drivers are in the same subdirectories. If we move
> drivers/usb to bus/usb, I would probably recommend to split
> drivers/usb/{serial,storage,atm,misc} out of it and move it to
> drivers/{tty/usb-serial,block/usb,net/usb/atm,misc/usb} though, to
> make it look more like PCI or i2c that already have a clean split.
On drivers/firewire/:
FireWire drivers are currently spread over drivers/firewire (three
link-layer controller drivers + the IEEE 1394 core + two IEEE 1394
application layer drivers), drivers/media/dvb/firewire/ (one 1394
application layer driver), sound/firewire/ (two 1394 application layer
drivers, more are planned to be added there).
>From the Linux driver model POV,
1. the IEEE 1394 core driver implements the firewire bus,
2. the link-layer controller drivers implement pci bus based devices,
3. the IEEE 1394 application layer drivers implement firewire bus based
devices. The two of them that are located in drivers/firewire/
expose a SCSI LLD (a transport in SCSI Architecture Model terms, but
a host rather than a transport in Linux implementation terms) and a
networking interface driver.
Number 2 is something one would expect to find in a hypothetical
drivers/bus/ directory. But where do the others belong?
Would type 1 drivers be kept in drivers/bus/firewire/? I understand your
above response to Jean that this is what you have in mind.
firewire-sbp2 could be moved into drivers/scsi/, and firewire-net could be
moved into drivers/net/. But what about maintenance? They could still be
maintained via linux1394-2.6.git because this worked so far, but then the
directory structure might irritate people who don't use
scripts/get_maintainer.pl all the time. Well, I could actually picture
firewire-net to be maintained via the net development tree, but I do
wonder how well firewire-sbp2 maintenance through the scsi tree would work.
PS,
these are the same questions like with USB, only on a smaller scale. (The
usb-storage driver is maintained through the usb tree as well, not the
scsi tree. drivers/net/usb/ has got T: git .../gregkh/usb-2.6.git
assigned in MAINTAINERS but most of the commits there are actually done by
DaveM.)
PPS,
besides association of source files with development trees, there is also
the association with developer mailing lists and user mailing lists and
web resources, e.g. wiki. How logical the directory layout is in this
sense could be approximately measured by means of the count of necessary
entries in MAINTAINERS.
--
Stefan Richter
-=====-==-== -==- --==-
http://arcgraph.de/sr/
next prev parent reply other threads:[~2011-06-06 13:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-05 7:18 [PATCH] spi: reorganize drivers Grant Likely
2011-06-05 7:43 ` Jassi Brar
[not found] ` <BANLkTinoEQf2a65KwQZOVK_4H9DSfqybjA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-05 7:54 ` Baruch Siach
2011-06-05 11:49 ` Geert Uytterhoeven
2011-06-05 13:08 ` Stefan Richter
2011-06-05 20:55 ` Grant Likely
2011-06-05 21:19 ` Jassi Brar
2011-06-05 13:12 ` Jassi Brar
2011-06-05 20:57 ` Grant Likely
2011-06-05 8:13 ` Mika Westerberg
2011-06-05 14:37 ` Grant Likely
2011-06-06 9:00 ` Arnd Bergmann
2011-06-06 9:08 ` Dominik Brodowski
2011-06-06 9:08 ` Russell King - ARM Linux
2011-06-06 9:17 ` Jean Delvare
2011-06-06 9:29 ` James Bottomley
2011-06-06 11:21 ` Arnd Bergmann
2011-06-06 12:16 ` Jean Delvare
2011-06-06 12:35 ` Geert Uytterhoeven
[not found] ` <20110606141636.150c54b5-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2011-06-06 12:57 ` Arnd Bergmann
2011-06-06 13:44 ` Stefan Richter [this message]
2011-06-06 15:04 ` Arnd Bergmann
2011-06-06 10:01 ` Geert Uytterhoeven
2011-06-06 14:39 ` Grant Likely
2011-06-06 15:15 ` Russell King - ARM Linux
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=20110606154447.51f07c7b@stein \
--to=stefanr@s5r6.in-berlin.de \
--cc=James.Bottomley@hansenpartnership.com \
--cc=alexandre.bounine@idt.com \
--cc=arnd@arndb.de \
--cc=ben-linux@fluff.org \
--cc=davem@davemloft.net \
--cc=florian@openwrt.org \
--cc=geert@linux-m68k.org \
--cc=grant.likely@secretlab.ca \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pcmcia@lists.infradead.org \
--cc=linux@arm.linux.org.uk \
--cc=macro@linux-mips.org \
--cc=mb@bu3sch.de \
--cc=mporter@kernel.crashing.org \
--cc=rusty@rustcorp.com.au \
--cc=spi-devel-general@lists.sourceforge.net \
/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;
as well as URLs for NNTP newsgroup(s).