[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1380686.VGpImaUmFA@harkonnen>
Date: Fri, 02 Mar 2012 11:18:59 +0100
From: Federico Vaga <federico.vaga@...il.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Alessandro Rubini <rubini@...dd.com>, linux-kernel@...r.kernel.org
Subject: Re: How to make a bus with heterogeneous devices?
> That's fine, it is what happens with lots of drivers, you can do this
> with the default attribute group assigned to that driver, right?
We can't because a driver can handle devices with different set of
attributes. We can't use device->groups because only if match succeed
we know which attributes add to the device.
That's because the same driver handles several similar devices, to avoid
proliferation of almost-identical drivers. So the drivers attaches
attributes to the device after match succeeds.
The solution that I temporarily implemented is the following:
> > [...]
> > 3- Attributes may be added after match succeeds, before calling
> > probe.
> > This cam be done with a "raw" call to sysfs_create_group(); then
> > groups cna be added to dev->groups so they will be removed on
> > device_unregister().
> > [...]
(with calling probe I mean calling "my" driver probe)
I know it's not a nice solution and I know it's not nice add groups to
device->groups after registration. I can use sysfs_create_group() and
sysfs_remove_group() without touching the device.
> I think you need to look at how the system bus is handled. It just
> went into 3.3-rc and allows for "different" types of devices to all be
> on the same bus, with different drivers and attributes. Let me know if
> how that works does not work out for you.
(thank you for the reference to the patches)
I think it doesn't work in our case for the same reason we can't use
device_driver->groups: we know too late in the register process which
attributes add to a device, practically at the end of the registration.
Maybe I'm missing something.
--
Federico Vaga
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists