Lines Matching refs:pci_dev
106 struct pci_dev *dev) in pci_match_id()
137 struct pci_dev *dev) in pci_match_device()
206 struct pci_dev *pdev = kzalloc_obj(*pdev); in new_id_store()
301 struct pci_dev *dev;
307 struct pci_dev *pci_dev = ddi->dev; in local_pci_probe() local
309 struct device *dev = &pci_dev->dev; in local_pci_probe()
322 pci_dev->driver = pci_drv; in local_pci_probe()
323 rc = pci_drv->probe(pci_dev, ddi->id); in local_pci_probe()
327 pci_dev->driver = NULL; in local_pci_probe()
335 pci_warn(pci_dev, "Driver probe function unexpectedly returned %d\n", in local_pci_probe()
355 static bool pci_physfn_is_probed(struct pci_dev *dev) in pci_physfn_is_probed()
364 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe()
436 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) in __pci_device_probe() argument
444 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
446 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
452 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
458 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
467 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_probe() local
470 if (!pci_device_can_probe(pci_dev)) in pci_device_probe()
473 pci_assign_irq(pci_dev); in pci_device_probe()
475 error = pcibios_alloc_irq(pci_dev); in pci_device_probe()
479 pci_dev_get(pci_dev); in pci_device_probe()
480 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
482 pcibios_free_irq(pci_dev); in pci_device_probe()
483 pci_dev_put(pci_dev); in pci_device_probe()
491 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_remove() local
492 struct pci_driver *drv = pci_dev->driver; in pci_device_remove()
503 drv->remove(pci_dev); in pci_device_remove()
506 pcibios_free_irq(pci_dev); in pci_device_remove()
507 pci_dev->driver = NULL; in pci_device_remove()
508 pci_iov_remove(pci_dev); in pci_device_remove()
517 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
518 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
529 pci_dev_put(pci_dev); in pci_device_remove()
534 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_shutdown() local
535 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown()
540 drv->shutdown(pci_dev); in pci_device_shutdown()
549 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
550 pci_clear_master(pci_dev); in pci_device_shutdown()
561 static int pci_restore_standard_config(struct pci_dev *pci_dev) in pci_restore_standard_config() argument
563 pci_update_current_state(pci_dev, PCI_UNKNOWN); in pci_restore_standard_config()
565 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
566 int error = pci_set_power_state(pci_dev, PCI_D0); in pci_restore_standard_config()
571 pci_restore_state(pci_dev); in pci_restore_standard_config()
572 pci_pme_restore(pci_dev); in pci_restore_standard_config()
581 static void pci_pm_default_resume(struct pci_dev *pci_dev) in pci_pm_default_resume() argument
583 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_default_resume()
584 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_default_resume()
587 static void pci_pm_default_resume_early(struct pci_dev *pci_dev) in pci_pm_default_resume_early() argument
589 pci_pm_power_up_and_verify_state(pci_dev); in pci_pm_default_resume_early()
590 pci_restore_state(pci_dev); in pci_pm_default_resume_early()
591 pci_pme_restore(pci_dev); in pci_pm_default_resume_early()
594 static void pci_pm_bridge_power_up_actions(struct pci_dev *pci_dev) in pci_pm_bridge_power_up_actions() argument
598 ret = pci_bridge_wait_for_secondary_bus(pci_dev, "resume"); in pci_pm_bridge_power_up_actions()
605 pci_walk_bus(pci_dev->subordinate, pci_dev_set_disconnected, in pci_pm_bridge_power_up_actions()
615 pci_resume_bus(pci_dev->subordinate); in pci_pm_bridge_power_up_actions()
626 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev) in pci_pm_set_unknown_state() argument
632 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
633 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
640 static int pci_pm_reenable_device(struct pci_dev *pci_dev) in pci_pm_reenable_device() argument
645 retval = pci_reenable_device(pci_dev); in pci_pm_reenable_device()
650 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
651 pci_set_master(pci_dev); in pci_pm_reenable_device()
658 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend() local
659 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend()
661 pci_dev->state_saved = false; in pci_legacy_suspend()
664 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
667 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
672 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
673 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
674 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_legacy_suspend()
680 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_legacy_suspend()
687 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend_late() local
689 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
690 pci_save_state(pci_dev); in pci_legacy_suspend_late()
692 pci_pm_set_unknown_state(pci_dev); in pci_legacy_suspend_late()
694 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_legacy_suspend_late()
701 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume() local
702 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume()
704 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_legacy_resume()
707 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
712 static void pci_pm_default_suspend(struct pci_dev *pci_dev) in pci_pm_default_suspend() argument
715 if (!pci_has_subordinate(pci_dev)) in pci_pm_default_suspend()
716 pci_disable_enabled_device(pci_dev); in pci_pm_default_suspend()
719 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev) in pci_has_legacy_pm_support() argument
721 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support()
729 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support()
730 pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
739 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_prepare() local
752 if (pci_dev_need_resume(pci_dev)) in pci_pm_prepare()
759 pci_dev_adjust_pme(pci_dev); in pci_pm_prepare()
765 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_complete() local
767 pci_dev_complete_resume(pci_dev); in pci_pm_complete()
772 pci_power_t pre_sleep_state = pci_dev->current_state; in pci_pm_complete()
774 pci_refresh_power_state(pci_dev); in pci_pm_complete()
782 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
797 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) in pcie_pme_root_status_cleanup() argument
804 if (pci_is_pcie(pci_dev) && in pcie_pme_root_status_cleanup()
805 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || in pcie_pme_root_status_cleanup()
806 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) in pcie_pme_root_status_cleanup()
807 pcie_clear_root_pme_status(pci_dev); in pcie_pme_root_status_cleanup()
812 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend() local
815 pci_dev->skip_bus_pm = false; in pci_pm_suspend()
821 pci_suspend_ptm(pci_dev); in pci_pm_suspend()
823 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend()
827 pci_pm_default_suspend(pci_dev); in pci_pm_suspend()
844 if (!dev_pm_smart_suspend(dev) || pci_dev_need_resume(pci_dev)) { in pci_pm_suspend()
846 pci_dev->state_saved = false; in pci_pm_suspend()
848 pci_dev_adjust_pme(pci_dev); in pci_pm_suspend()
852 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
860 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
861 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
862 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend()
883 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend_noirq() local
889 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend_noirq()
893 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
898 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
906 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
907 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
908 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend_noirq()
915 if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
916 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
923 if (!pci_dev->skip_bus_pm && pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
924 pci_prepare_to_sleep(pci_dev); in pci_pm_suspend_noirq()
927 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n", in pci_pm_suspend_noirq()
928 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
930 if (pci_dev->current_state == PCI_D0) { in pci_pm_suspend_noirq()
931 pci_dev->skip_bus_pm = true; in pci_pm_suspend_noirq()
937 if (pci_dev->bus->self) in pci_pm_suspend_noirq()
938 pci_dev->bus->self->skip_bus_pm = true; in pci_pm_suspend_noirq()
941 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { in pci_pm_suspend_noirq()
942 pci_dbg(pci_dev, "PCI PM: Skipped\n"); in pci_pm_suspend_noirq()
946 pci_pm_set_unknown_state(pci_dev); in pci_pm_suspend_noirq()
957 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
958 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_suspend_noirq()
961 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_suspend_noirq()
978 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume_noirq() local
980 pci_power_t prev_state = pci_dev->current_state; in pci_pm_resume_noirq()
981 bool skip_bus_pm = pci_dev->skip_bus_pm; in pci_pm_resume_noirq()
993 pci_pm_default_resume_early(pci_dev); in pci_pm_resume_noirq()
995 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_resume_noirq()
996 pcie_pme_root_status_cleanup(pci_dev); in pci_pm_resume_noirq()
999 pci_pm_bridge_power_up_actions(pci_dev); in pci_pm_resume_noirq()
1001 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume_noirq()
1020 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume() local
1027 if (pci_dev->state_saved) in pci_pm_resume()
1028 pci_restore_standard_config(pci_dev); in pci_pm_resume()
1030 pci_resume_ptm(pci_dev); in pci_pm_resume()
1032 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume()
1035 pci_pm_default_resume(pci_dev); in pci_pm_resume()
1041 pci_pm_reenable_device(pci_dev); in pci_pm_resume()
1062 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze() local
1065 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze()
1069 pci_pm_default_suspend(pci_dev); in pci_pm_freeze()
1071 pci_dev->state_saved = false; in pci_pm_freeze()
1084 pci_dev->state_saved = false; in pci_pm_freeze()
1100 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze_noirq() local
1103 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze_noirq()
1115 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1116 pci_save_state(pci_dev); in pci_pm_freeze_noirq()
1118 pci_pm_set_unknown_state(pci_dev); in pci_pm_freeze_noirq()
1125 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw_noirq() local
1137 pci_pm_power_up_and_verify_state(pci_dev); in pci_pm_thaw_noirq()
1138 pci_restore_state(pci_dev); in pci_pm_thaw_noirq()
1140 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw_noirq()
1151 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw() local
1155 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw()
1162 pci_pm_reenable_device(pci_dev); in pci_pm_thaw()
1170 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff() local
1173 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff()
1177 pci_pm_default_suspend(pci_dev); in pci_pm_poweroff()
1182 if (!dev_pm_smart_suspend(dev) || pci_dev_need_resume(pci_dev)) { in pci_pm_poweroff()
1184 pci_dev->state_saved = false; in pci_pm_poweroff()
1186 pci_dev_adjust_pme(pci_dev); in pci_pm_poweroff()
1213 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff_noirq() local
1219 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff_noirq()
1223 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1236 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1237 pci_prepare_to_sleep(pci_dev); in pci_pm_poweroff_noirq()
1243 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1244 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_poweroff_noirq()
1246 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1253 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore_noirq() local
1256 pci_pm_default_resume_early(pci_dev); in pci_pm_restore_noirq()
1257 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_restore_noirq()
1259 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore_noirq()
1270 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore() local
1277 if (pci_dev->state_saved) in pci_pm_restore()
1278 pci_restore_standard_config(pci_dev); in pci_pm_restore()
1280 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore()
1283 pci_pm_default_resume(pci_dev); in pci_pm_restore()
1289 pci_pm_reenable_device(pci_dev); in pci_pm_restore()
1313 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_suspend() local
1315 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1318 pci_suspend_ptm(pci_dev); in pci_pm_runtime_suspend()
1325 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1326 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1330 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1339 pci_dbg(pci_dev, "can't suspend now (%ps returned %d)\n", in pci_pm_runtime_suspend()
1343 pci_err(pci_dev, "can't suspend (%ps returned %d)\n", in pci_pm_runtime_suspend()
1349 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_pm_runtime_suspend()
1352 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1353 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1354 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1360 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1361 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1362 pci_finish_runtime_suspend(pci_dev); in pci_pm_runtime_suspend()
1370 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_resume() local
1372 pci_power_t prev_state = pci_dev->current_state; in pci_pm_runtime_resume()
1380 pci_pm_default_resume_early(pci_dev); in pci_pm_runtime_resume()
1381 pci_resume_ptm(pci_dev); in pci_pm_runtime_resume()
1383 if (!pci_dev->driver) in pci_pm_runtime_resume()
1386 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_runtime_resume()
1387 pci_pm_default_resume(pci_dev); in pci_pm_runtime_resume()
1390 pci_pm_bridge_power_up_actions(pci_dev); in pci_pm_runtime_resume()
1400 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_idle() local
1407 if (!pci_dev->driver) in pci_pm_runtime_idle()
1509 struct pci_driver *pci_dev_driver(const struct pci_dev *dev) in pci_dev_driver()
1535 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_bus_match() local
1539 if (pci_dev_binding_disallowed(pci_dev)) in pci_bus_match()
1543 found_id = pci_match_device(pci_drv, pci_dev); in pci_bus_match()
1562 struct pci_dev *pci_dev_get(struct pci_dev *dev) in pci_dev_get()
1577 void pci_dev_put(struct pci_dev *dev) in pci_dev_put()
1586 const struct pci_dev *pdev; in pci_uevent()
1622 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type) in pci_uevent_ers()