On Thu, Jul 19, 2012 at 06:58:38PM -0500, H Hartley Sweeten wrote: > On Thursday, July 19, 2012 4:35 PM, gregkh wrote: > > On Thu, Jul 19, 2012 at 06:31:23PM -0500, H Hartley Sweeten wrote: > >> If the comedi pci drivers have the "attach_pci" callback defined, the > >> PCI api does correctly probe the driver. The comedi_pci_auto_config() > >> then passes the pci_dev directly to the driver and the search of the > >> PCI space for the device is not required. > >> > >> If the "attach_pci" callback is not defined, the comedi_pci_auto_config() > >> then falls back to passing the bus/slot information to the driver and uses > >> the "attach" callback. In this case we could probably fast-track the search > >> by using pci_get_slot() instead of doing the for_each_pci_dev() loop. > >> > >> I think the problem is the COMEDI_DEVCONFIG ioctl. The userspace > >> utility 'comedi_config' uses that ioctl to link a device node to a > >> comedi driver. That utility allows passing the bus/slot information > >> but it's not required. This means we have to search the PCI space > >> for the pci_dev that matches the driver. > > > > The ioctl shouldn't be needed anymore for PCI or USB devices, as the > > kernel handles the matching of the driver to the device. Even if it > > didn't, there are other more "standard" ways that you can bind devices > > to drivers (through sysfs.) > > I think it's still needed for some of the devices that require external > firmware. The comedi_config utility allows the user to remove the > driver binding and then reattach to it while passing the firmware blob > into the driver. Why would the driver need to be unbound from the device to do this? > Not saying any of this is valid... And yes, there probably is a more > "standard" way to do this. I just need a hint of what that is... ;-) The "bind" and "unbind" files in sysfs are for that. thanks, greg k-h _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel