Lines Matching defs:drv

34  * @drv: target pci driver
44 * driver to probe for all devices again. @drv must have been
53 int pci_add_dynid(struct pci_driver *drv,
73 spin_lock(&drv->dynids.lock);
74 list_add_tail(&dynid->node, &drv->dynids.list);
75 spin_unlock(&drv->dynids.lock);
77 return driver_attach(&drv->driver);
81 static void pci_free_dynids(struct pci_driver *drv)
85 spin_lock(&drv->dynids.lock);
86 list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) {
90 spin_unlock(&drv->dynids.lock);
128 * @drv: the PCI driver to match against
136 static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
143 if (dev->driver_override && strcmp(dev->driver_override, drv->name))
147 spin_lock(&drv->dynids.lock);
148 list_for_each_entry(dynid, &drv->dynids.list, node) {
154 spin_unlock(&drv->dynids.lock);
159 for (ids = drv->id_table; (found_id = pci_match_id(ids, dev));
300 struct pci_driver *drv;
309 struct pci_driver *pci_drv = ddi->drv;
350 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev,
354 struct drv_dev_and_id ddi = { drv, dev, id };
401 * @drv: driver to call to check if it wants the PCI device
405 * side-effect: pci_dev->driver is set to drv when drv claims pci_dev.
407 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
412 if (drv->probe) {
415 id = pci_match_device(drv, pci_dev);
417 error = pci_call_probe(drv, pci_dev, id);
439 struct pci_driver *drv = to_pci_driver(dev->driver);
451 error = __pci_device_probe(drv, pci_dev);
463 struct pci_driver *drv = pci_dev->driver;
465 if (drv->remove) {
474 drv->remove(pci_dev);
506 struct pci_driver *drv = pci_dev->driver;
510 if (drv && drv->shutdown)
511 drv->shutdown(pci_dev);
636 struct pci_driver *drv = pci_dev->driver;
638 if (drv && drv->suspend) {
642 error = drv->suspend(pci_dev, state);
643 suspend_report_result(dev, drv->suspend, error);
651 drv->suspend);
677 struct pci_driver *drv = pci_dev->driver;
681 return drv && drv->resume ?
682 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev);
696 struct pci_driver *drv = pci_dev->driver;
697 bool ret = drv && (drv->suspend || drv->resume);
704 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n",
1426 * @drv: the driver structure to register
1427 * @owner: owner module of drv
1435 int __pci_register_driver(struct pci_driver *drv, struct module *owner,
1439 drv->driver.name = drv->name;
1440 drv->driver.bus = &pci_bus_type;
1441 drv->driver.owner = owner;
1442 drv->driver.mod_name = mod_name;
1443 drv->driver.groups = drv->groups;
1444 drv->driver.dev_groups = drv->dev_groups;
1446 spin_lock_init(&drv->dynids.lock);
1447 INIT_LIST_HEAD(&drv->dynids.list);
1450 return driver_register(&drv->driver);
1456 * @drv: the driver structure to unregister
1464 void pci_unregister_driver(struct pci_driver *drv)
1466 driver_unregister(&drv->driver);
1467 pci_free_dynids(drv);
1500 * @drv: the device driver to search for matching PCI device id structures
1506 static int pci_bus_match(struct device *dev, struct device_driver *drv)
1515 pci_drv = to_pci_driver(drv);
1691 static int pcie_port_bus_match(struct device *dev, struct device_driver *drv)
1696 if (drv->bus != &pcie_port_bus_type || dev->bus != &pcie_port_bus_type)
1700 driver = to_service_driver(drv);