[lkml]   [2012]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: 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

     \ /
      Last update: 2012-03-02 11:19    [W:0.021 / U:46.516 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site