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);
318 static void pci_epf_remove_cfs(struct pci_epf_driver *driver)
326 list_for_each_entry_safe(group, tmp, &driver->epf_group, group_entry)
328 list_del(&driver->epf_group);
333 * pci_epf_unregister_driver() - unregister the PCI EPF driver
334 * @driver: the PCI EPF driver that has to be unregistered
336 * Invoke to unregister the PCI EPF driver.
338 void pci_epf_unregister_driver(struct pci_epf_driver *driver)
340 pci_epf_remove_cfs(driver);
341 driver_unregister(&driver->driver);
345 static int pci_epf_add_cfs(struct pci_epf_driver *driver)
353 INIT_LIST_HEAD(&driver->epf_group);
355 id = driver->id_table;
359 pci_epf_remove_cfs(driver);
364 list_add_tail(&group->group_entry, &driver->epf_group);
373 * __pci_epf_register_driver() - register a new PCI EPF driver
374 * @driver: structure representing PCI EPF driver
375 * @owner: the owner of the module that registers the PCI EPF driver
377 * Invoke to register a new PCI EPF driver.
379 int __pci_epf_register_driver(struct pci_epf_driver *driver,
384 if (!driver->ops)
387 if (!driver->ops->bind || !driver->ops->unbind)
390 driver->driver.bus = &pci_epf_bus_type;
391 driver->driver.owner = owner;
393 ret = driver_register(&driver->driver);
397 pci_epf_add_cfs(driver);
418 * EPF device to a EPF driver
494 struct pci_epf_driver *driver = to_pci_epf_driver(drv);
496 if (driver->id_table)
497 return !!pci_epf_match_id(driver->id_table, epf);
505 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver);
507 if (!driver->probe)
510 epf->driver = driver;
512 return driver->probe(epf, pci_epf_match_id(driver->id_table, epf));
518 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver);
520 if (driver->remove)
521 driver->remove(epf);
522 epf->driver = NULL;