Lines Matching refs:driver
39 if (!epf->driver) { in pci_epf_type_add_cfs()
44 if (!epf->driver->ops->add_cfs) in pci_epf_type_add_cfs()
48 epf_type_group = epf->driver->ops->add_cfs(epf, group); in pci_epf_type_add_cfs()
67 if (!epf->driver) { in pci_epf_unbind()
75 epf_vf->driver->ops->unbind(epf_vf); in pci_epf_unbind()
78 epf->driver->ops->unbind(epf); in pci_epf_unbind()
80 module_put(epf->driver->owner); in pci_epf_unbind()
99 if (!epf->driver) { in pci_epf_bind()
104 if (!try_module_get(epf->driver->owner)) in pci_epf_bind()
155 ret = epf_vf->driver->ops->bind(epf_vf); in pci_epf_bind()
161 ret = epf->driver->ops->bind(epf); in pci_epf_bind()
335 static void pci_epf_remove_cfs(struct pci_epf_driver *driver) in pci_epf_remove_cfs() argument
343 list_for_each_entry_safe(group, tmp, &driver->epf_group, group_entry) in pci_epf_remove_cfs()
345 list_del(&driver->epf_group); in pci_epf_remove_cfs()
355 void pci_epf_unregister_driver(struct pci_epf_driver *driver) in pci_epf_unregister_driver() argument
357 pci_epf_remove_cfs(driver); in pci_epf_unregister_driver()
358 driver_unregister(&driver->driver); in pci_epf_unregister_driver()
362 static int pci_epf_add_cfs(struct pci_epf_driver *driver) in pci_epf_add_cfs() argument
370 INIT_LIST_HEAD(&driver->epf_group); in pci_epf_add_cfs()
372 id = driver->id_table; in pci_epf_add_cfs()
376 pci_epf_remove_cfs(driver); in pci_epf_add_cfs()
381 list_add_tail(&group->group_entry, &driver->epf_group); in pci_epf_add_cfs()
396 int __pci_epf_register_driver(struct pci_epf_driver *driver, in __pci_epf_register_driver() argument
401 if (!driver->ops) in __pci_epf_register_driver()
404 if (!driver->ops->bind || !driver->ops->unbind) in __pci_epf_register_driver()
407 driver->driver.bus = &pci_epf_bus_type; in __pci_epf_register_driver()
408 driver->driver.owner = owner; in __pci_epf_register_driver()
410 ret = driver_register(&driver->driver); in __pci_epf_register_driver()
414 pci_epf_add_cfs(driver); in __pci_epf_register_driver()
511 struct pci_epf_driver *driver = to_pci_epf_driver(drv); in pci_epf_device_match() local
513 if (driver->id_table) in pci_epf_device_match()
514 return pci_epf_match_id(driver->id_table, epf); in pci_epf_device_match()
522 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver); in pci_epf_device_probe() local
524 if (!driver->probe) in pci_epf_device_probe()
527 epf->driver = driver; in pci_epf_device_probe()
529 return driver->probe(epf); in pci_epf_device_probe()
535 struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver); in pci_epf_device_remove() local
537 if (driver->remove) in pci_epf_device_remove()
538 driver->remove(epf); in pci_epf_device_remove()
539 epf->driver = NULL; in pci_epf_device_remove()