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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/