]> Pileus Git - ~andy/linux/commitdiff
staging: comedi: support auto_attach() for PCI and USB
authorIan Abbott <abbotti@mev.co.uk>
Sat, 27 Oct 2012 20:44:15 +0000 (21:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 29 Oct 2012 22:02:08 +0000 (15:02 -0700)
Allow `comedi_pci_auto_config()` and `comedi_usb_auto_config()` to use
the new `auto_attach()` hook in the low-level driver's `struct
comedi_driver` if it is set and the `attach_pci()` or `attach_usb()`
hook (for PCI or USB respectively) is `NULL`.

Eventually, the `auto_attach()` hook will be the only way of
auto-configuring hardware devices as comedi devices and the bus-type
specific `attach_pci()` and `attach_usb()` hooks will be removed.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers.c

index d60fa551a5351c097904c7c668e6a3fac4cbf3b2..adae25643b1bdd494daca82ab91f5226200f08f0 100644 (file)
@@ -1023,6 +1023,8 @@ int comedi_pci_auto_config(struct pci_dev *pcidev, struct comedi_driver *driver)
 
        if (driver->attach_pci)
                return comedi_new_pci_auto_config(pcidev, driver);
+       else if (driver->auto_attach)
+               return comedi_auto_config(&pcidev->dev, driver, 0);
        else
                return comedi_old_pci_auto_config(pcidev, driver);
 }
@@ -1093,6 +1095,8 @@ int comedi_usb_auto_config(struct usb_interface *intf,
        BUG_ON(intf == NULL);
        if (driver->attach_usb)
                return comedi_new_usb_auto_config(intf, driver);
+       else if (driver->auto_attach)
+               return comedi_auto_config(&intf->dev, driver, 0);
        else
                return comedi_old_usb_auto_config(intf, driver);
 }