Lines Matching refs:drv

50 int pci_add_dynid(struct pci_driver *drv,  in pci_add_dynid()  argument
70 spin_lock(&drv->dynids.lock); in pci_add_dynid()
71 list_add_tail(&dynid->node, &drv->dynids.list); in pci_add_dynid()
72 spin_unlock(&drv->dynids.lock); in pci_add_dynid()
74 return driver_attach(&drv->driver); in pci_add_dynid()
78 static void pci_free_dynids(struct pci_driver *drv) in pci_free_dynids() argument
82 spin_lock(&drv->dynids.lock); in pci_free_dynids()
83 list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) { in pci_free_dynids()
87 spin_unlock(&drv->dynids.lock); in pci_free_dynids()
251 static const struct pci_device_id *pci_match_device(struct pci_driver *drv, in pci_match_device() argument
258 if (dev->driver_override && strcmp(dev->driver_override, drv->name)) in pci_match_device()
262 spin_lock(&drv->dynids.lock); in pci_match_device()
263 list_for_each_entry(dynid, &drv->dynids.list, node) { in pci_match_device()
269 spin_unlock(&drv->dynids.lock); in pci_match_device()
272 found_id = pci_match_id(drv->id_table, dev); in pci_match_device()
282 struct pci_driver *drv; member
291 struct pci_driver *pci_drv = ddi->drv; in local_pci_probe()
331 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe() argument
335 struct drv_dev_and_id ddi = { drv, dev, id }; in pci_call_probe()
375 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) in __pci_device_probe() argument
380 if (!pci_dev->driver && drv->probe) { in __pci_device_probe()
383 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
385 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
416 struct pci_driver *drv = to_pci_driver(dev->driver); in pci_device_probe() local
428 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
440 struct pci_driver *drv = pci_dev->driver; in pci_device_remove() local
442 if (drv) { in pci_device_remove()
443 if (drv->remove) { in pci_device_remove()
445 drv->remove(pci_dev); in pci_device_remove()
479 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown() local
483 if (drv && drv->shutdown) in pci_device_shutdown()
484 drv->shutdown(pci_dev); in pci_device_shutdown()
568 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend() local
570 if (drv && drv->suspend) { in pci_legacy_suspend()
574 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
575 suspend_report_result(drv->suspend, error); in pci_legacy_suspend()
583 drv->suspend); in pci_legacy_suspend()
595 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend_late() local
597 if (drv && drv->suspend_late) { in pci_legacy_suspend_late()
601 error = drv->suspend_late(pci_dev, state); in pci_legacy_suspend_late()
602 suspend_report_result(drv->suspend_late, error); in pci_legacy_suspend_late()
610 drv->suspend_late); in pci_legacy_suspend_late()
629 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume_early() local
631 return drv && drv->resume_early ? in pci_legacy_resume_early()
632 drv->resume_early(pci_dev) : 0; in pci_legacy_resume_early()
638 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume() local
642 return drv && drv->resume ? in pci_legacy_resume()
643 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
663 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support() local
664 bool ret = drv && (drv->suspend || drv->suspend_late || drv->resume in pci_has_legacy_pm_support()
665 || drv->resume_early); in pci_has_legacy_pm_support()
672 WARN(ret && drv->driver.pm, "driver %s device %04x:%04x\n", in pci_has_legacy_pm_support()
673 drv->name, pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
682 struct device_driver *drv = dev->driver; in pci_pm_prepare() local
685 if (drv && drv->pm && drv->pm->prepare) { in pci_pm_prepare()
686 int error = drv->pm->prepare(dev); in pci_pm_prepare()
920 struct device_driver *drv = dev->driver; in pci_pm_resume_noirq() local
950 if (drv && drv->pm && drv->pm->resume_noirq) in pci_pm_resume_noirq()
951 error = drv->pm->resume_noirq(dev); in pci_pm_resume_noirq()
1042 struct device_driver *drv = dev->driver; in pci_pm_freeze_noirq() local
1047 if (drv && drv->pm && drv->pm->freeze_noirq) { in pci_pm_freeze_noirq()
1050 error = drv->pm->freeze_noirq(dev); in pci_pm_freeze_noirq()
1051 suspend_report_result(drv->pm->freeze_noirq, error); in pci_pm_freeze_noirq()
1070 struct device_driver *drv = dev->driver; in pci_pm_thaw_noirq() local
1090 if (drv && drv->pm && drv->pm->thaw_noirq) in pci_pm_thaw_noirq()
1091 error = drv->pm->thaw_noirq(dev); in pci_pm_thaw_noirq()
1164 struct device_driver *drv = dev->driver; in pci_pm_poweroff_noirq() local
1172 if (!drv || !drv->pm) { in pci_pm_poweroff_noirq()
1177 if (drv->pm->poweroff_noirq) { in pci_pm_poweroff_noirq()
1180 error = drv->pm->poweroff_noirq(dev); in pci_pm_poweroff_noirq()
1181 suspend_report_result(drv->pm->poweroff_noirq, error); in pci_pm_poweroff_noirq()
1207 struct device_driver *drv = dev->driver; in pci_pm_restore_noirq() local
1222 if (drv && drv->pm && drv->pm->restore_noirq) in pci_pm_restore_noirq()
1223 error = drv->pm->restore_noirq(dev); in pci_pm_restore_noirq()
1422 int __pci_register_driver(struct pci_driver *drv, struct module *owner, in __pci_register_driver() argument
1426 drv->driver.name = drv->name; in __pci_register_driver()
1427 drv->driver.bus = &pci_bus_type; in __pci_register_driver()
1428 drv->driver.owner = owner; in __pci_register_driver()
1429 drv->driver.mod_name = mod_name; in __pci_register_driver()
1430 drv->driver.groups = drv->groups; in __pci_register_driver()
1432 spin_lock_init(&drv->dynids.lock); in __pci_register_driver()
1433 INIT_LIST_HEAD(&drv->dynids.list); in __pci_register_driver()
1436 return driver_register(&drv->driver); in __pci_register_driver()
1450 void pci_unregister_driver(struct pci_driver *drv) in pci_unregister_driver() argument
1452 driver_unregister(&drv->driver); in pci_unregister_driver()
1453 pci_free_dynids(drv); in pci_unregister_driver()
1491 static int pci_bus_match(struct device *dev, struct device_driver *drv) in pci_bus_match() argument
1500 pci_drv = to_pci_driver(drv); in pci_bus_match()
1659 static int pcie_port_bus_match(struct device *dev, struct device_driver *drv) in pcie_port_bus_match() argument
1664 if (drv->bus != &pcie_port_bus_type || dev->bus != &pcie_port_bus_type) in pcie_port_bus_match()
1668 driver = to_service_driver(drv); in pcie_port_bus_match()