[PATCH 6/9 v2] staging: comedi: support auto_attach() for PCI and USB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
---
v2: Removed "magic constant" context values passed through to the
    driver's `auto_attach` handler by `comedi_pci_auto_config()` and
    `comedi_usb_auto_config()`.  Drivers wishing to disambiguate
    differently wrapped devices in that handler can call
    `comedi_auto_config()` instead of `comedi_pci_auto_config()` or
    `comedi_usb_auto_config()` to set the context value to something
    meaningful to itself.
---
 drivers/staging/comedi/drivers.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index d60fa55..adae256 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -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);
 }
-- 
1.8.0

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux