Lines Matching refs:driver

24  * pci_epf_unbind() - Notify the function driver that the binding between the
28 * Invoke to notify the function driver that the binding between the EPF device
35 if (!epf->driver) {
36 dev_WARN(&epf->dev, "epf device not bound to driver\n");
43 epf_vf->driver->ops->unbind(epf_vf);
46 epf->driver->ops->unbind(epf);
48 module_put(epf->driver->owner);
53 * pci_epf_bind() - Notify the function driver that the EPF device has been
57 * Invoke to notify the function driver that it has been bound to a EPC device
67 if (!epf->driver) {
68 dev_WARN(dev, "epf device not bound to driver\n");
72 if (!try_module_get(epf->driver->owner))
123 ret = epf_vf->driver->ops->bind(epf_vf);
129 ret = epf->driver->ops->bind(epf);
315 static void pci_epf_remove_cfs(struct pci_epf_driver *driver)
323 list_for_each_entry_safe(group, tmp, &driver->epf_group, group_entry)
325 list_del(&driver->epf_group);
330 * pci_epf_unregister_driver() - unregister the PCI EPF driver
331 * @driver: the PCI EPF driver that has to be unregistered
333 * Invoke to unregister the PCI EPF driver.
335 void pci_epf_unregister_driver(struct pci_epf_driver *driver)
337 pci_epf_remove_cfs(driver);
338 driver_unregister(&driver->driver);
342 static int pci_epf_add_cfs(struct pci_epf_driver *driver)
350 INIT_LIST_HEAD(&driver->epf_group);
352 id = driver->id_table;
356 pci_epf_remove_cfs(driver);
361 list_add_tail(&group->group_entry, &driver->epf_group);
370 * __pci_epf_register_driver() - register a new PCI EPF driver
371 * @driver: structure representing PCI EPF driver
372 * @owner: the owner of the module that registers the PCI EPF driver
374 * Invoke to register a new PCI EPF driver.
376 int __pci_epf_register_driver(struct pci_epf_driver *driver,
381 if (!driver->ops)
384 if (!driver->ops->bind || !driver->ops->unbind)
387 driver->driver.bus = &pci_epf_bus_type;
388 driver->driver.owner = owner;
390 ret = driver_register(&driver->driver);
394 pci_epf_add_cfs(driver);
415 * EPF device to a EPF driver
491 struct pci_epf_driver *driver = to_pci_epf_driver(drv);
493 if (driver->id_table)
494 return !!pci_epf_match_id(driver->id_table, epf);
502 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver);
504 if (!driver->probe)
507 epf->driver = driver;
509 return driver->probe(epf, pci_epf_match_id(driver->id_table, epf));
515 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver);
517 if (driver->remove)
518 driver->remove(epf);
519 epf->driver = NULL;