From: Kay Sievers <kay.sievers@vrfy.org>
To: Adam Belay <ambx1@neo.rr.com>, Greg KH <gregkh@suse.de>,
dtor_core@ameritech.net, Vojtech Pavlik <vojtech@suse.cz>,
Hannes Reinecke <hare@suse.de>,
Patrick Mochel <mochel@digitalimplant.org>,
airlied@linux.ie, linux-kernel@vger.kernel.org
Subject: Re: [patch 0/8] Nesting class_device patches that actually work
Date: Tue, 18 Oct 2005 01:44:00 +0200 [thread overview]
Message-ID: <20051017234400.GA2457@vrfy.org> (raw)
In-Reply-To: <20051017232430.GA32655@neo.rr.com>
On Mon, Oct 17, 2005 at 07:24:30PM -0400, Adam Belay wrote:
> On Mon, Oct 17, 2005 at 02:44:30PM -0700, Greg KH wrote:
> > On Sat, Oct 15, 2005 at 05:08:55PM +0200, Kay Sievers wrote:
> > > A lot! From general distro specific system-management to subsystem specific
> > > setup tools and tons of udev rules... There is definitely no chance to break
> > > /sys/class in _all_ subsystems by introducing subdirectories.
> >
> > I agree.
> >
> > > > Btw, is your proposal with moving it all into /sys/device less drastic?
> > >
> > > Definitely, cause it keeps all the curent api! The only difference is that class-devices
> > > are reached by symlinks instead of real directories. The pathes to the devices are
> > > the same!
> >
> > Ok, I've spent a while thinking about this proposal and originally I
> > thought it was the same thing we had heard years ago. But I was wrong,
> > moving the class stuff into the device tree is the right thing to do, as
> > long as we keep them as new "things" in the tree (previous proposals
> > just had the /sys/class stuff as symlinks pointing to the devices
> > themselves, which would not work for a range of reasons.)
> >
> > So, what to do now? Here's my proposal for the future.
> >
> > We figure out some way to agree on the input stuff, using class_device
> > and get that into 2.6.15. Personally, I like the stuff I just did and
> > is in the -mm tree :)
> >
> > But, if you think we can't break userspace by adding nested class
> > devices just yet, I agree, and can probably just put a symlink in
> > /sys/class/input to the nested devices, which will make everything "just
> > work". I'll try that out later tonight and let you all know how it
> > goes.
> >
> > Then, we move the class stuff into real devices. There was always a lot
> > of duplication with the class and device code, and this shows that there
> > is a commonality there. At the same time, I'll work on making the
> > attribute stuff easier and possibly merge the kobject and device
> > structures together a bit (possibly I said, I don't know quite how much
> > yet...)
Yeah, would be nice if we can share the attribute define/create/grouping
stuff over all devices. Currently we have device/class/block attribute
management which are all do almost the same.
> > But this second step is going to take a while, have to not break
> > everything along the way, and should hopefully clean up a lot of mess
> > tht the current driver core has. I'd be glad to do it :)
> >
> > Acceptable to everyone?
>
> Sounds good to me. The changes to driver model internals may be substantial.
Sounds very good to me too. :)
I like to see the "dynamic input" as soon as possible in the tree, as I'm
waiting for more than a year now to get rid of the old stuff in udev
only kept there for "input". :)
/sys/class/input/ and /sys/class/input_device/ and a matching SUBSYSTEM
value would be the easiest for userspace without much breakage involved.
That would give us a /sbin/hotplug-fork free driver core and we can
start rearranging stuff.
> For example, because buses and classes will share more code, it's
> reasonable to allow drivers to bind to any "device" object, even class
> devices. Of course this would be limited to classes that choose to
> implement driver matching etc. We are doing this now with the pci express
> port driver.
We should try this, it feels like "buses" can easily become "classes",
like the SUBSYSTEM value already looks these days. We'll see...
> It also may make sense to move bus_types to the "class" interface. The
> layered classes suggestion is especially useful here because we can have a
> "hardware" or "bus" class that acts as a parent for "pci", "usb", etc.
>
> Also, we could make driver objects a "class" and represent them in the
> global device tree, giving each driver instance its own unique namespace.
>
> >
> > Oh, one tiny problem. "virtual devices" are not currently represented
> > in our device tree, but are in the class tree. Things like the
> > different vc and ttys and misc devices are examples of this. I'll just
> > put them on the "platform" bus if no one minds.
>
> I think we should be trying to kill off the platform bus (it's artifical and
> doesn't show the real relationships between these devices). Instead, just
> hang them off the root of the tree. If the device doesn't have any parents
> or dependencies, then that's logically where it belongs.
We do the same in HAL every unconnected object just lives in the root of
the device tree.
Thanks,
Kay
next prev parent reply other threads:[~2005-10-17 23:44 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20051013014147.235668000@echidna.kroah.org>
2005-10-13 2:08 ` [patch 0/8] Nesting class_device patches that actually work Greg KH
2005-10-13 2:10 ` Greg KH
2005-10-13 23:38 ` Kay Sievers
2005-10-13 2:10 ` [patch 1/8] Driver Core: add the ability for class_device structures to be nested Greg KH
2005-10-13 2:10 ` [patch 2/8] Driver Core: fix up all callers of class_device_create() Greg KH
2005-10-13 2:10 ` [patch 3/8] Driver Core: document struct class_device properly Greg KH
2005-10-13 2:10 ` [patch 4/8] input: register the input class device sooner Greg KH
2005-10-13 2:10 ` [patch 5/8] input: export input_dev_class so that input drivers can use it Greg KH
2005-10-13 2:10 ` [patch 6/8] input: move the input class devices under their new input_dev devices Greg KH
2005-10-13 2:11 ` [patch 7/8] input: remove the input_class structure, as it is unused Greg KH
2005-10-13 2:11 ` [patch 8/8] input: rename input_dev_class to input_class to be correct Greg KH
2005-10-13 6:38 ` [patch 0/8] Nesting class_device patches that actually work Vojtech Pavlik
2005-10-13 21:21 ` Dmitry Torokhov
2005-10-13 10:58 ` Kay Sievers
2005-10-13 21:35 ` Dmitry Torokhov
2005-10-13 23:37 ` Hannes Reinecke
2005-10-14 8:45 ` Kay Sievers
2005-10-14 12:14 ` Kay Sievers
2005-10-14 12:49 ` linux-os (Dick Johnson)
2005-10-14 13:49 ` Kay Sievers
2005-10-17 10:02 ` Vojtech Pavlik
2005-10-18 5:13 ` Dmitry Torokhov
2005-10-14 17:02 ` Dmitry Torokhov
2005-10-15 15:08 ` Kay Sievers
2005-10-17 5:41 ` Dmitry Torokhov
2005-10-17 21:44 ` Greg KH
2005-10-17 21:54 ` Dmitry Torokhov
2005-10-17 23:26 ` Adam Belay
2005-10-18 0:03 ` Kay Sievers
2005-10-17 23:24 ` Adam Belay
2005-10-17 23:44 ` Kay Sievers [this message]
2005-10-18 5:26 ` Greg KH
2005-10-18 7:18 ` Adam Belay
2005-10-18 7:54 ` Greg KH
2005-10-18 8:34 ` Vojtech Pavlik
2005-10-18 15:08 ` Kay Sievers
2005-10-18 15:41 ` Dmitry Torokhov
2005-10-18 6:04 ` Greg KH
2005-10-18 7:05 ` Greg KH
2005-10-18 7:35 ` Greg KH
2005-10-17 9:26 ` Vojtech Pavlik
2005-12-01 18:59 ` Patrick Mochel
2005-10-14 9:52 ` Christoph Hellwig
2005-10-14 16:36 ` Dmitry Torokhov
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=20051017234400.GA2457@vrfy.org \
--to=kay.sievers@vrfy.org \
--cc=airlied@linux.ie \
--cc=ambx1@neo.rr.com \
--cc=dtor_core@ameritech.net \
--cc=gregkh@suse.de \
--cc=hare@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mochel@digitalimplant.org \
--cc=vojtech@suse.cz \
/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