Lines Matching refs:driver
35 if (!epf->driver) { in pci_epf_unbind()
43 epf_vf->driver->ops->unbind(epf_vf); in pci_epf_unbind()
46 epf->driver->ops->unbind(epf); in pci_epf_unbind()
48 module_put(epf->driver->owner); in pci_epf_unbind()
67 if (!epf->driver) { in pci_epf_bind()
72 if (!try_module_get(epf->driver->owner)) in pci_epf_bind()
123 ret = epf_vf->driver->ops->bind(epf_vf); in pci_epf_bind()
129 ret = epf->driver->ops->bind(epf); in pci_epf_bind()
304 static void pci_epf_remove_cfs(struct pci_epf_driver *driver) in pci_epf_remove_cfs() argument
312 list_for_each_entry_safe(group, tmp, &driver->epf_group, group_entry) in pci_epf_remove_cfs()
314 list_del(&driver->epf_group); in pci_epf_remove_cfs()
324 void pci_epf_unregister_driver(struct pci_epf_driver *driver) in pci_epf_unregister_driver() argument
326 pci_epf_remove_cfs(driver); in pci_epf_unregister_driver()
327 driver_unregister(&driver->driver); in pci_epf_unregister_driver()
331 static int pci_epf_add_cfs(struct pci_epf_driver *driver) in pci_epf_add_cfs() argument
339 INIT_LIST_HEAD(&driver->epf_group); in pci_epf_add_cfs()
341 id = driver->id_table; in pci_epf_add_cfs()
345 pci_epf_remove_cfs(driver); in pci_epf_add_cfs()
350 list_add_tail(&group->group_entry, &driver->epf_group); in pci_epf_add_cfs()
365 int __pci_epf_register_driver(struct pci_epf_driver *driver, in __pci_epf_register_driver() argument
370 if (!driver->ops) in __pci_epf_register_driver()
373 if (!driver->ops->bind || !driver->ops->unbind) in __pci_epf_register_driver()
376 driver->driver.bus = &pci_epf_bus_type; in __pci_epf_register_driver()
377 driver->driver.owner = owner; in __pci_epf_register_driver()
379 ret = driver_register(&driver->driver); in __pci_epf_register_driver()
383 pci_epf_add_cfs(driver); in __pci_epf_register_driver()
480 struct pci_epf_driver *driver = to_pci_epf_driver(drv); in pci_epf_device_match() local
482 if (driver->id_table) in pci_epf_device_match()
483 return !!pci_epf_match_id(driver->id_table, epf); in pci_epf_device_match()
491 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver); in pci_epf_device_probe() local
493 if (!driver->probe) in pci_epf_device_probe()
496 epf->driver = driver; in pci_epf_device_probe()
498 return driver->probe(epf, pci_epf_match_id(driver->id_table, epf)); in pci_epf_device_probe()
504 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver); in pci_epf_device_remove() local
506 if (driver->remove) in pci_epf_device_remove()
507 driver->remove(epf); in pci_epf_device_remove()
508 epf->driver = NULL; in pci_epf_device_remove()