Lines Matching defs:drv

33  * @drv: target pci driver
43 * driver to probe for all devices again. @drv must have been
52 int pci_add_dynid(struct pci_driver *drv,
72 spin_lock(&drv->dynids.lock);
73 list_add_tail(&dynid->node, &drv->dynids.list);
74 spin_unlock(&drv->dynids.lock);
76 return driver_attach(&drv->driver);
80 static void pci_free_dynids(struct pci_driver *drv)
84 spin_lock(&drv->dynids.lock);
85 list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) {
89 spin_unlock(&drv->dynids.lock);
246 * @drv: the PCI driver to match against
253 static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
260 if (dev->driver_override && strcmp(dev->driver_override, drv->name))
264 spin_lock(&drv->dynids.lock);
265 list_for_each_entry(dynid, &drv->dynids.list, node) {
271 spin_unlock(&drv->dynids.lock);
274 found_id = pci_match_id(drv->id_table, dev);
284 struct pci_driver *drv;
293 struct pci_driver *pci_drv = ddi->drv;
334 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev,
339 struct drv_dev_and_id ddi = { drv, dev, id };
374 * @drv: driver to call to check if it wants the PCI device
378 * side-effect: pci_dev->driver is set to drv when drv claims pci_dev.
380 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
385 if (!pci_dev->driver && drv->probe) {
388 id = pci_match_device(drv, pci_dev);
390 error = pci_call_probe(drv, pci_dev, id);
421 struct pci_driver *drv = to_pci_driver(dev->driver);
433 error = __pci_device_probe(drv, pci_dev);
445 struct pci_driver *drv = pci_dev->driver;
447 if (drv->remove) {
456 drv->remove(pci_dev);
489 struct pci_driver *drv = pci_dev->driver;
493 if (drv && drv->shutdown)
494 drv->shutdown(pci_dev);
585 struct pci_driver *drv = pci_dev->driver;
587 if (drv && drv->suspend) {
591 error = drv->suspend(pci_dev, state);
592 suspend_report_result(drv->suspend, error);
600 drv->suspend);
626 struct pci_driver *drv = pci_dev->driver;
630 return drv && drv->resume ?
631 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev);
645 struct pci_driver *drv = pci_dev->driver;
646 bool ret = drv && (drv->suspend || drv->resume);
653 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n",
1374 * @drv: the driver structure to register
1375 * @owner: owner module of drv
1383 int __pci_register_driver(struct pci_driver *drv, struct module *owner,
1387 drv->driver.name = drv->name;
1388 drv->driver.bus = &pci_bus_type;
1389 drv->driver.owner = owner;
1390 drv->driver.mod_name = mod_name;
1391 drv->driver.groups = drv->groups;
1393 spin_lock_init(&drv->dynids.lock);
1394 INIT_LIST_HEAD(&drv->dynids.list);
1397 return driver_register(&drv->driver);
1403 * @drv: the driver structure to unregister
1411 void pci_unregister_driver(struct pci_driver *drv)
1413 driver_unregister(&drv->driver);
1414 pci_free_dynids(drv);
1446 * @drv: the device driver to search for matching PCI device id structures
1452 static int pci_bus_match(struct device *dev, struct device_driver *drv)
1461 pci_drv = to_pci_driver(drv);
1620 static int pcie_port_bus_match(struct device *dev, struct device_driver *drv)
1625 if (drv->bus != &pcie_port_bus_type || dev->bus != &pcie_port_bus_type)
1629 driver = to_service_driver(drv);