Lines Matching +full:drv +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0
3 * (C) Copyright 2002-2004, 2007 Greg Kroah-Hartman <greg@kroah.com>
22 #include <linux/dma-map-ops.h>
29 struct pci_device_id id; member
33 * pci_add_dynid - add a new PCI device ID to this driver and re-probe devices
34 * @drv: target pci driver
35 * @vendor: PCI vendor ID
36 * @device: PCI device ID
37 * @subvendor: PCI subvendor ID
38 * @subdevice: PCI subdevice ID
43 * Adds a new dynamic pci device ID to this driver and causes the
44 * driver to probe for all devices again. @drv must have been
51 * 0 on success, -errno on failure.
53 int pci_add_dynid(struct pci_driver *drv, in pci_add_dynid() argument
63 return -ENOMEM; in pci_add_dynid()
65 dynid->id.vendor = vendor; in pci_add_dynid()
66 dynid->id.device = device; in pci_add_dynid()
67 dynid->id.subvendor = subvendor; in pci_add_dynid()
68 dynid->id.subdevice = subdevice; in pci_add_dynid()
69 dynid->id.class = class; in pci_add_dynid()
70 dynid->id.class_mask = class_mask; in pci_add_dynid()
71 dynid->id.driver_data = driver_data; in pci_add_dynid()
73 spin_lock(&drv->dynids.lock); in pci_add_dynid()
74 list_add_tail(&dynid->node, &drv->dynids.list); in pci_add_dynid()
75 spin_unlock(&drv->dynids.lock); in pci_add_dynid()
77 return driver_attach(&drv->driver); in pci_add_dynid()
81 static void pci_free_dynids(struct pci_driver *drv) in pci_free_dynids() argument
85 spin_lock(&drv->dynids.lock); in pci_free_dynids()
86 list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) { in pci_free_dynids()
87 list_del(&dynid->node); in pci_free_dynids()
90 spin_unlock(&drv->dynids.lock); in pci_free_dynids()
94 * pci_match_id - See if a PCI device matches a given pci_id table
95 * @ids: array of PCI device ID structures to search in
109 while (ids->vendor || ids->subvendor || ids->class_mask) { in pci_match_id()
127 * pci_match_device - See if a device matches a driver's list of IDs
128 * @drv: the PCI driver to match against
136 static const struct pci_device_id *pci_match_device(struct pci_driver *drv, in pci_match_device() argument
143 if (dev->driver_override && strcmp(dev->driver_override, drv->name)) in pci_match_device()
147 spin_lock(&drv->dynids.lock); in pci_match_device()
148 list_for_each_entry(dynid, &drv->dynids.list, node) { in pci_match_device()
149 if (pci_match_one_device(&dynid->id, dev)) { in pci_match_device()
150 found_id = &dynid->id; in pci_match_device()
154 spin_unlock(&drv->dynids.lock); in pci_match_device()
159 for (ids = drv->id_table; (found_id = pci_match_id(ids, dev)); in pci_match_device()
166 if (found_id->override_only) { in pci_match_device()
167 if (dev->driver_override) in pci_match_device()
174 /* driver_override will always match, send a dummy id */ in pci_match_device()
175 if (dev->driver_override) in pci_match_device()
181 * new_id_store - sysfs frontend to pci_add_dynid()
183 * @buf: buffer for scanning device ID data
192 const struct pci_device_id *ids = pdrv->id_table; in new_id_store()
203 return -EINVAL; in new_id_store()
208 return -ENOMEM; in new_id_store()
210 pdev->vendor = vendor; in new_id_store()
211 pdev->device = device; in new_id_store()
212 pdev->subsystem_vendor = subvendor; in new_id_store()
213 pdev->subsystem_device = subdevice; in new_id_store()
214 pdev->class = class; in new_id_store()
217 retval = -EEXIST; in new_id_store()
228 retval = -EINVAL; in new_id_store()
229 while (ids->vendor || ids->subvendor || ids->class_mask) { in new_id_store()
230 if (driver_data == ids->driver_data) { in new_id_store()
249 * remove_id_store - remove a PCI device ID from this driver
251 * @buf: buffer for scanning device ID data
254 * Removes a dynamic pci device ID to this driver.
264 size_t retval = -ENODEV; in remove_id_store()
270 return -EINVAL; in remove_id_store()
272 spin_lock(&pdrv->dynids.lock); in remove_id_store()
273 list_for_each_entry_safe(dynid, n, &pdrv->dynids.list, node) { in remove_id_store()
274 struct pci_device_id *id = &dynid->id; in remove_id_store() local
275 if ((id->vendor == vendor) && in remove_id_store()
276 (id->device == device) && in remove_id_store()
277 (subvendor == PCI_ANY_ID || id->subvendor == subvendor) && in remove_id_store()
278 (subdevice == PCI_ANY_ID || id->subdevice == subdevice) && in remove_id_store()
279 !((id->class ^ class) & class_mask)) { in remove_id_store()
280 list_del(&dynid->node); in remove_id_store()
286 spin_unlock(&pdrv->dynids.lock); in remove_id_store()
300 struct pci_driver *drv; member
302 const struct pci_device_id *id; member
308 struct pci_dev *pci_dev = ddi->dev; in local_pci_probe()
309 struct pci_driver *pci_drv = ddi->drv; in local_pci_probe()
310 struct device *dev = &pci_dev->dev; in local_pci_probe()
323 pci_dev->driver = pci_drv; in local_pci_probe()
324 rc = pci_drv->probe(pci_dev, ddi->id); in local_pci_probe()
328 pci_dev->driver = NULL; in local_pci_probe()
344 return dev->is_virtfn && dev->physfn->is_probed; in pci_physfn_is_probed()
350 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe() argument
351 const struct pci_device_id *id) in pci_call_probe() argument
354 struct drv_dev_and_id ddi = { drv, dev, id }; in pci_call_probe()
361 node = dev_to_node(&dev->dev); in pci_call_probe()
362 dev->is_probed = 1; in pci_call_probe()
377 error = -ENOMEM; in pci_call_probe()
394 dev->is_probed = 0; in pci_call_probe()
400 * __pci_device_probe - check if a driver wants to claim a specific PCI device
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) in __pci_device_probe() argument
409 const struct pci_device_id *id; in __pci_device_probe() local
412 if (drv->probe) { in __pci_device_probe()
413 error = -ENODEV; in __pci_device_probe()
415 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
416 if (id) in __pci_device_probe()
417 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
434 return (!pdev->is_virtfn || pdev->physfn->sriov->drivers_autoprobe || in pci_device_can_probe()
435 pdev->driver_override); in pci_device_can_probe()
448 struct pci_driver *drv = to_pci_driver(dev->driver); in pci_device_probe() local
451 return -ENODEV; in pci_device_probe()
460 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
472 struct pci_driver *drv = pci_dev->driver; in pci_device_remove() local
474 if (drv->remove) { in pci_device_remove()
483 drv->remove(pci_dev); in pci_device_remove()
487 pci_dev->driver = NULL; in pci_device_remove()
497 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
498 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
501 * We would love to complain here if pci_dev->is_enabled is set, that in pci_device_remove()
515 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown() local
519 if (drv && drv->shutdown) in pci_device_shutdown()
520 drv->shutdown(pci_dev); in pci_device_shutdown()
529 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
538 * pci_restore_standard_config - restore standard config registers of PCI device
545 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
559 /* Auxiliary functions used for system resume and run-time resume */
591 pci_walk_bus(pci_dev->subordinate, pci_dev_set_disconnected, in pci_pm_bridge_power_up_actions()
601 pci_resume_bus(pci_dev->subordinate); in pci_pm_bridge_power_up_actions()
618 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
619 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
630 /* if the device was enabled before suspend, re-enable */ in pci_pm_reenable_device()
636 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
645 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend() local
647 if (drv && drv->suspend) { in pci_legacy_suspend()
648 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
651 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
652 suspend_report_result(dev, drv->suspend, error); in pci_legacy_suspend()
656 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
657 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
658 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_legacy_suspend()
660 drv->suspend); in pci_legacy_suspend()
673 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
686 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume() local
690 return drv && drv->resume ? in pci_legacy_resume()
691 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
698 /* Disable non-bridge devices without PM support */ in pci_pm_default_suspend()
705 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support() local
706 bool ret = drv && (drv->suspend || drv->resume); in pci_has_legacy_pm_support()
713 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support()
714 pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
724 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_prepare()
726 if (pm && pm->prepare) { in pci_pm_prepare()
727 int error = pm->prepare(dev); in pci_pm_prepare()
738 * The PME setting needs to be adjusted here in case the direct-complete in pci_pm_prepare()
752 /* Resume device if platform firmware has put it in reset-power-on */ in pci_pm_complete()
754 pci_power_t pre_sleep_state = pci_dev->current_state; in pci_pm_complete()
764 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
781 * wakeup, which breaks ACPI-based runtime wakeup on PCI Express. in pcie_pme_root_status_cleanup()
793 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_suspend()
795 pci_dev->skip_bus_pm = false; in pci_pm_suspend()
799 * since Coffee Lake, to enter a lower-power PM state. in pci_pm_suspend()
821 * suspend callbacks can cope with runtime-suspended devices, it is in pci_pm_suspend()
827 pci_dev->state_saved = false; in pci_pm_suspend()
832 if (pm->suspend) { in pci_pm_suspend()
833 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
836 error = pm->suspend(dev); in pci_pm_suspend()
837 suspend_report_result(dev, pm->suspend, error); in pci_pm_suspend()
841 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
842 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
843 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend()
845 pm->suspend); in pci_pm_suspend()
865 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_suspend_noirq()
878 if (pm->suspend_noirq) { in pci_pm_suspend_noirq()
879 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
882 error = pm->suspend_noirq(dev); in pci_pm_suspend_noirq()
883 suspend_report_result(dev, pm->suspend_noirq, error); in pci_pm_suspend_noirq()
887 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
888 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
889 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend_noirq()
891 pm->suspend_noirq); in pci_pm_suspend_noirq()
896 if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
902 * putting it into a low-power state in that case. in pci_pm_suspend_noirq()
904 if (!pci_dev->skip_bus_pm && pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
909 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
911 if (pci_dev->current_state == PCI_D0) { in pci_pm_suspend_noirq()
912 pci_dev->skip_bus_pm = true; in pci_pm_suspend_noirq()
914 * Per PCI PM r1.2, table 6-1, a bridge must be in D0 if any in pci_pm_suspend_noirq()
918 if (pci_dev->bus->self) in pci_pm_suspend_noirq()
919 pci_dev->bus->self->skip_bus_pm = true; in pci_pm_suspend_noirq()
922 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { in pci_pm_suspend_noirq()
938 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
945 * If the target system sleep state is suspend-to-idle, it is sufficient in pci_pm_suspend_noirq()
952 dev->power.may_skip_resume = false; in pci_pm_suspend_noirq()
960 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_resume_noirq()
961 pci_power_t prev_state = pci_dev->current_state; in pci_pm_resume_noirq()
962 bool skip_bus_pm = pci_dev->skip_bus_pm; in pci_pm_resume_noirq()
968 * In the suspend-to-idle case, devices left in D0 during suspend will in pci_pm_resume_noirq()
985 if (pm && pm->resume_noirq) in pci_pm_resume_noirq()
986 return pm->resume_noirq(dev); in pci_pm_resume_noirq()
1002 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_resume()
1008 if (pci_dev->state_saved) in pci_pm_resume()
1019 if (pm->resume) in pci_pm_resume()
1020 return pm->resume(dev); in pci_pm_resume()
1044 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_freeze()
1055 * Resume all runtime-suspended devices before creating a snapshot in pci_pm_freeze()
1058 * put into the runtime-active metastate during system resume anyway, in pci_pm_freeze()
1063 pci_dev->state_saved = false; in pci_pm_freeze()
1065 if (pm->freeze) { in pci_pm_freeze()
1068 error = pm->freeze(dev); in pci_pm_freeze()
1069 suspend_report_result(dev, pm->freeze, error); in pci_pm_freeze()
1080 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_freeze_noirq()
1085 if (pm && pm->freeze_noirq) { in pci_pm_freeze_noirq()
1088 error = pm->freeze_noirq(dev); in pci_pm_freeze_noirq()
1089 suspend_report_result(dev, pm->freeze_noirq, error); in pci_pm_freeze_noirq()
1094 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1105 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_thaw_noirq()
1108 * The pm->thaw_noirq() callback assumes the device has been in pci_pm_thaw_noirq()
1111 * In addition, pci_restore_state() restores MSI-X state in MMIO in pci_pm_thaw_noirq()
1113 * in case the driver's "freeze" callbacks put it into a low-power in pci_pm_thaw_noirq()
1122 if (pm && pm->thaw_noirq) in pci_pm_thaw_noirq()
1123 return pm->thaw_noirq(dev); in pci_pm_thaw_noirq()
1131 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_thaw()
1138 if (pm->thaw) in pci_pm_thaw()
1139 error = pm->thaw(dev); in pci_pm_thaw()
1144 pci_dev->state_saved = false; in pci_pm_thaw()
1152 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_poweroff()
1166 pci_dev->state_saved = false; in pci_pm_poweroff()
1171 if (pm->poweroff) { in pci_pm_poweroff()
1174 error = pm->poweroff(dev); in pci_pm_poweroff()
1175 suspend_report_result(dev, pm->poweroff, error); in pci_pm_poweroff()
1196 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_poweroff_noirq()
1209 if (pm->poweroff_noirq) { in pci_pm_poweroff_noirq()
1212 error = pm->poweroff_noirq(dev); in pci_pm_poweroff_noirq()
1213 suspend_report_result(dev, pm->poweroff_noirq, error); in pci_pm_poweroff_noirq()
1218 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1225 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1236 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_restore_noirq()
1244 if (pm && pm->restore_noirq) in pci_pm_restore_noirq()
1245 return pm->restore_noirq(dev); in pci_pm_restore_noirq()
1253 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_restore()
1259 if (pci_dev->state_saved) in pci_pm_restore()
1268 if (pm->restore) in pci_pm_restore()
1269 return pm->restore(dev); in pci_pm_restore()
1296 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_runtime_suspend()
1297 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1303 * If pci_dev->driver is not set (unbound), we leave the device in D0, in pci_pm_runtime_suspend()
1307 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1312 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1313 if (pm && pm->runtime_suspend) { in pci_pm_runtime_suspend()
1314 error = pm->runtime_suspend(dev); in pci_pm_runtime_suspend()
1316 * -EBUSY and -EAGAIN is used to request the runtime PM core in pci_pm_runtime_suspend()
1320 if (error == -EBUSY || error == -EAGAIN) { in pci_pm_runtime_suspend()
1322 pm->runtime_suspend, error); in pci_pm_runtime_suspend()
1326 pm->runtime_suspend, error); in pci_pm_runtime_suspend()
1333 if (pm && pm->runtime_suspend in pci_pm_runtime_suspend()
1334 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1335 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1336 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1338 pm->runtime_suspend); in pci_pm_runtime_suspend()
1342 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1353 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_runtime_resume()
1354 pci_power_t prev_state = pci_dev->current_state; in pci_pm_runtime_resume()
1365 if (!pci_dev->driver) in pci_pm_runtime_resume()
1374 if (pm && pm->runtime_resume) in pci_pm_runtime_resume()
1375 error = pm->runtime_resume(dev); in pci_pm_runtime_resume()
1383 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_runtime_idle()
1386 * If pci_dev->driver is not set (unbound), the device should in pci_pm_runtime_idle()
1389 if (!pci_dev->driver) in pci_pm_runtime_idle()
1393 return -ENOSYS; in pci_pm_runtime_idle()
1395 if (pm->runtime_idle) in pci_pm_runtime_idle()
1396 return pm->runtime_idle(dev); in pci_pm_runtime_idle()
1437 * __pci_register_driver - register a new pci driver
1438 * @drv: the driver structure to register
1439 * @owner: owner module of drv
1447 int __pci_register_driver(struct pci_driver *drv, struct module *owner, in __pci_register_driver() argument
1451 drv->driver.name = drv->name; in __pci_register_driver()
1452 drv->driver.bus = &pci_bus_type; in __pci_register_driver()
1453 drv->driver.owner = owner; in __pci_register_driver()
1454 drv->driver.mod_name = mod_name; in __pci_register_driver()
1455 drv->driver.groups = drv->groups; in __pci_register_driver()
1456 drv->driver.dev_groups = drv->dev_groups; in __pci_register_driver()
1458 spin_lock_init(&drv->dynids.lock); in __pci_register_driver()
1459 INIT_LIST_HEAD(&drv->dynids.list); in __pci_register_driver()
1462 return driver_register(&drv->driver); in __pci_register_driver()
1467 * pci_unregister_driver - unregister a pci driver
1468 * @drv: the driver structure to unregister
1476 void pci_unregister_driver(struct pci_driver *drv) in pci_unregister_driver() argument
1478 driver_unregister(&drv->driver); in pci_unregister_driver()
1479 pci_free_dynids(drv); in pci_unregister_driver()
1488 * pci_dev_driver - get the pci_driver of a device
1498 if (dev->driver) in pci_dev_driver()
1499 return dev->driver; in pci_dev_driver()
1502 if (dev->resource[i].flags & IORESOURCE_BUSY) in pci_dev_driver()
1510 * pci_bus_match - Tell if a PCI device structure has a matching PCI device id structure
1512 * @drv: the device driver to search for matching PCI device id structures
1518 static int pci_bus_match(struct device *dev, struct device_driver *drv) in pci_bus_match() argument
1524 if (!pci_dev->match_driver) in pci_bus_match()
1527 pci_drv = to_pci_driver(drv); in pci_bus_match()
1536 * pci_dev_get - increments the reference count of the pci device structure
1550 get_device(&dev->dev); in pci_dev_get()
1556 * pci_dev_put - release a use of the pci device structure
1565 put_device(&dev->dev); in pci_dev_put()
1574 return -ENODEV; in pci_uevent()
1578 if (add_uevent_var(env, "PCI_CLASS=%04X", pdev->class)) in pci_uevent()
1579 return -ENOMEM; in pci_uevent()
1581 if (add_uevent_var(env, "PCI_ID=%04X:%04X", pdev->vendor, pdev->device)) in pci_uevent()
1582 return -ENOMEM; in pci_uevent()
1584 if (add_uevent_var(env, "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor, in pci_uevent()
1585 pdev->subsystem_device)) in pci_uevent()
1586 return -ENOMEM; in pci_uevent()
1589 return -ENOMEM; in pci_uevent()
1592 pdev->vendor, pdev->device, in pci_uevent()
1593 pdev->subsystem_vendor, pdev->subsystem_device, in pci_uevent()
1594 (u8)(pdev->class >> 16), (u8)(pdev->class >> 8), in pci_uevent()
1595 (u8)(pdev->class))) in pci_uevent()
1596 return -ENOMEM; in pci_uevent()
1603 * pci_uevent_ers - emit a uevent during recovery path of PCI device
1632 kobject_uevent_env(&pdev->dev.kobj, KOBJ_CHANGE, envp); in pci_uevent_ers()
1643 * pci_dma_configure - Setup DMA configuration
1651 struct pci_driver *driver = to_pci_driver(dev->driver); in pci_dma_configure()
1657 if (IS_ENABLED(CONFIG_OF) && bridge->parent && in pci_dma_configure()
1658 bridge->parent->of_node) { in pci_dma_configure()
1659 ret = of_dma_configure(dev, bridge->parent->of_node, true); in pci_dma_configure()
1661 struct acpi_device *adev = to_acpi_device_node(bridge->fwnode); in pci_dma_configure()
1668 if (!ret && !driver->driver_managed_dma) { in pci_dma_configure()
1679 struct pci_driver *driver = to_pci_driver(dev->driver); in pci_dma_cleanup()
1681 if (!driver->driver_managed_dma) in pci_dma_cleanup()
1703 static int pcie_port_bus_match(struct device *dev, struct device_driver *drv) in pcie_port_bus_match() argument
1708 if (drv->bus != &pcie_port_bus_type || dev->bus != &pcie_port_bus_type) in pcie_port_bus_match()
1712 driver = to_service_driver(drv); in pcie_port_bus_match()
1714 if (driver->service != pciedev->service) in pcie_port_bus_match()
1717 if (driver->port_type != PCIE_ANY_PORT && in pcie_port_bus_match()
1718 driver->port_type != pci_pcie_type(pciedev->port)) in pcie_port_bus_match()