Re: Class device namespaces

From: Kay Sievers
Date: Tue Apr 28 2009 - 08:37:01 EST


On Tue, Apr 28, 2009 at 10:08, Jean Delvare <khali@xxxxxxxxxxxx> wrote:
> On Mon, 27 Apr 2009 23:57:40 +0200, Kay Sievers wrote:

>> Register a "i2c" bus_type with the core, and instead of assigning
>> dev.class = class, you assign dev.bus = bus to the devices you
>> register, that should work, if there is nothing more complicated going
>> on in the background.
>
> Err, I'm confused. We _already_ have an "i2c" bus type, and we already
> assign dev.bus = &i2c_bus_type, but for i2c devices (or slaves if you
> prefer), not adapters (masters). Doing the same for adapters (the
> parents) and devices (the children) looks totally wrong to me.
>
> Are you really certain that i2c-adapters should be bus devices rather
> than class devices?

i2c seem to do things nothing else is doing, so I can not really be
certain. :) But I still think it would be nice to do that, if the
adapters have child devices.

It is unusual to stack class devices of different classes. The common
model would be to put the adapters, and all other possible device
types to the already existing "i2c" bus, and distinguish them by name,
and internally by "struct device_type" if needed.

Like USB puts usb-interface, usb-device, root-hub under the "usb"
bus_type, or SCSI puts host, target, lun under the "scsi" bus. All
these different devices build the tree of the core devices of a
specific subsystem.

Any possible class devices would only be leaves in these trees, which
do not have any interconnection between the individual class devices.

Thanks,
Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/