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(sizeof(*pdev), GFP_KERNEL); in new_id_store()
301 struct pci_dev *dev;
308 struct pci_dev *pci_dev = ddi->dev; in local_pci_probe() local
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()
336 pci_warn(pci_dev, "Driver probe function unexpectedly returned %d\n", in local_pci_probe()
341 static bool pci_physfn_is_probed(struct pci_dev *dev) in pci_physfn_is_probed()
350 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe()
407 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) in __pci_device_probe() argument
415 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
417 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
422 int __weak pcibios_alloc_irq(struct pci_dev *dev) in pcibios_alloc_irq()
427 void __weak pcibios_free_irq(struct pci_dev *dev) in pcibios_free_irq()
432 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
438 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
447 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_probe() local
450 if (!pci_device_can_probe(pci_dev)) in pci_device_probe()
453 pci_assign_irq(pci_dev); in pci_device_probe()
455 error = pcibios_alloc_irq(pci_dev); in pci_device_probe()
459 pci_dev_get(pci_dev); in pci_device_probe()
460 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
462 pcibios_free_irq(pci_dev); in pci_device_probe()
463 pci_dev_put(pci_dev); in pci_device_probe()
471 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_remove() local
472 struct pci_driver *drv = pci_dev->driver; in pci_device_remove()
476 drv->remove(pci_dev); in pci_device_remove()
479 pcibios_free_irq(pci_dev); in pci_device_remove()
480 pci_dev->driver = NULL; in pci_device_remove()
481 pci_iov_remove(pci_dev); in pci_device_remove()
490 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
491 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
502 pci_dev_put(pci_dev); in pci_device_remove()
507 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_shutdown() local
508 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown()
513 drv->shutdown(pci_dev); in pci_device_shutdown()
522 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
523 pci_clear_master(pci_dev); in pci_device_shutdown()
534 static int pci_restore_standard_config(struct pci_dev *pci_dev) in pci_restore_standard_config() argument
536 pci_update_current_state(pci_dev, PCI_UNKNOWN); in pci_restore_standard_config()
538 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
539 int error = pci_set_power_state(pci_dev, PCI_D0); in pci_restore_standard_config()
544 pci_restore_state(pci_dev); in pci_restore_standard_config()
545 pci_pme_restore(pci_dev); in pci_restore_standard_config()
554 static void pci_pm_default_resume(struct pci_dev *pci_dev) in pci_pm_default_resume() argument
556 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_default_resume()
557 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_default_resume()
560 static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) in pci_pm_power_up_and_verify_state() argument
562 pci_power_up(pci_dev); in pci_pm_power_up_and_verify_state()
563 pci_update_current_state(pci_dev, PCI_D0); in pci_pm_power_up_and_verify_state()
566 static void pci_pm_default_resume_early(struct pci_dev *pci_dev) in pci_pm_default_resume_early() argument
568 pci_pm_power_up_and_verify_state(pci_dev); in pci_pm_default_resume_early()
569 pci_restore_state(pci_dev); in pci_pm_default_resume_early()
570 pci_pme_restore(pci_dev); in pci_pm_default_resume_early()
573 static void pci_pm_bridge_power_up_actions(struct pci_dev *pci_dev) in pci_pm_bridge_power_up_actions() argument
577 ret = pci_bridge_wait_for_secondary_bus(pci_dev, "resume"); in pci_pm_bridge_power_up_actions()
584 pci_walk_bus(pci_dev->subordinate, pci_dev_set_disconnected, in pci_pm_bridge_power_up_actions()
594 pci_resume_bus(pci_dev->subordinate); in pci_pm_bridge_power_up_actions()
605 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev) in pci_pm_set_unknown_state() argument
611 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
612 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
619 static int pci_pm_reenable_device(struct pci_dev *pci_dev) in pci_pm_reenable_device() argument
624 retval = pci_reenable_device(pci_dev); in pci_pm_reenable_device()
629 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
630 pci_set_master(pci_dev); in pci_pm_reenable_device()
637 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend() local
638 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend()
641 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
644 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
649 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
650 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
651 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_legacy_suspend()
657 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_legacy_suspend()
664 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend_late() local
666 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
667 pci_save_state(pci_dev); in pci_legacy_suspend_late()
669 pci_pm_set_unknown_state(pci_dev); in pci_legacy_suspend_late()
671 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_legacy_suspend_late()
678 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume() local
679 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume()
681 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_legacy_resume()
684 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
689 static void pci_pm_default_suspend(struct pci_dev *pci_dev) in pci_pm_default_suspend() argument
692 if (!pci_has_subordinate(pci_dev)) in pci_pm_default_suspend()
693 pci_disable_enabled_device(pci_dev); in pci_pm_default_suspend()
696 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev) in pci_has_legacy_pm_support() argument
698 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support()
706 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support()
707 pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
716 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_prepare() local
727 if (pci_dev_need_resume(pci_dev)) in pci_pm_prepare()
734 pci_dev_adjust_pme(pci_dev); in pci_pm_prepare()
740 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_complete() local
742 pci_dev_complete_resume(pci_dev); in pci_pm_complete()
747 pci_power_t pre_sleep_state = pci_dev->current_state; in pci_pm_complete()
749 pci_refresh_power_state(pci_dev); in pci_pm_complete()
757 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
770 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) in pcie_pme_root_status_cleanup() argument
777 if (pci_is_pcie(pci_dev) && in pcie_pme_root_status_cleanup()
778 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || in pcie_pme_root_status_cleanup()
779 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) in pcie_pme_root_status_cleanup()
780 pcie_clear_root_pme_status(pci_dev); in pcie_pme_root_status_cleanup()
785 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend() local
788 pci_dev->skip_bus_pm = false; in pci_pm_suspend()
794 pci_suspend_ptm(pci_dev); in pci_pm_suspend()
796 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend()
800 pci_pm_default_suspend(pci_dev); in pci_pm_suspend()
818 pci_dev_need_resume(pci_dev)) { in pci_pm_suspend()
820 pci_dev->state_saved = false; in pci_pm_suspend()
822 pci_dev_adjust_pme(pci_dev); in pci_pm_suspend()
826 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
834 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
835 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
836 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend()
857 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend_noirq() local
863 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend_noirq()
867 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
872 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
880 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
881 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
882 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend_noirq()
889 if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
890 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
897 if (!pci_dev->skip_bus_pm && pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
898 pci_prepare_to_sleep(pci_dev); in pci_pm_suspend_noirq()
901 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n", in pci_pm_suspend_noirq()
902 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
904 if (pci_dev->current_state == PCI_D0) { in pci_pm_suspend_noirq()
905 pci_dev->skip_bus_pm = true; in pci_pm_suspend_noirq()
911 if (pci_dev->bus->self) in pci_pm_suspend_noirq()
912 pci_dev->bus->self->skip_bus_pm = true; in pci_pm_suspend_noirq()
915 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { in pci_pm_suspend_noirq()
916 pci_dbg(pci_dev, "PCI PM: Skipped\n"); in pci_pm_suspend_noirq()
920 pci_pm_set_unknown_state(pci_dev); in pci_pm_suspend_noirq()
931 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
932 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_suspend_noirq()
935 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_suspend_noirq()
952 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume_noirq() local
954 pci_power_t prev_state = pci_dev->current_state; in pci_pm_resume_noirq()
955 bool skip_bus_pm = pci_dev->skip_bus_pm; in pci_pm_resume_noirq()
967 pci_pm_default_resume_early(pci_dev); in pci_pm_resume_noirq()
969 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_resume_noirq()
970 pcie_pme_root_status_cleanup(pci_dev); in pci_pm_resume_noirq()
973 pci_pm_bridge_power_up_actions(pci_dev); in pci_pm_resume_noirq()
975 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume_noirq()
994 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume() local
1001 if (pci_dev->state_saved) in pci_pm_resume()
1002 pci_restore_standard_config(pci_dev); in pci_pm_resume()
1004 pci_resume_ptm(pci_dev); in pci_pm_resume()
1006 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume()
1009 pci_pm_default_resume(pci_dev); in pci_pm_resume()
1015 pci_pm_reenable_device(pci_dev); in pci_pm_resume()
1036 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze() local
1039 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze()
1043 pci_pm_default_suspend(pci_dev); in pci_pm_freeze()
1056 pci_dev->state_saved = false; in pci_pm_freeze()
1072 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze_noirq() local
1075 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze_noirq()
1087 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1088 pci_save_state(pci_dev); in pci_pm_freeze_noirq()
1090 pci_pm_set_unknown_state(pci_dev); in pci_pm_freeze_noirq()
1097 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw_noirq() local
1109 pci_pm_power_up_and_verify_state(pci_dev); in pci_pm_thaw_noirq()
1110 pci_restore_state(pci_dev); in pci_pm_thaw_noirq()
1112 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw_noirq()
1123 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw() local
1127 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw()
1134 pci_pm_reenable_device(pci_dev); in pci_pm_thaw()
1137 pci_dev->state_saved = false; in pci_pm_thaw()
1144 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff() local
1147 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff()
1151 pci_pm_default_suspend(pci_dev); in pci_pm_poweroff()
1157 pci_dev_need_resume(pci_dev)) { in pci_pm_poweroff()
1159 pci_dev->state_saved = false; in pci_pm_poweroff()
1161 pci_dev_adjust_pme(pci_dev); in pci_pm_poweroff()
1188 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff_noirq() local
1194 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff_noirq()
1198 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1211 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1212 pci_prepare_to_sleep(pci_dev); in pci_pm_poweroff_noirq()
1218 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1219 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_poweroff_noirq()
1221 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1228 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore_noirq() local
1231 pci_pm_default_resume_early(pci_dev); in pci_pm_restore_noirq()
1232 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_restore_noirq()
1234 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore_noirq()
1245 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore() local
1252 if (pci_dev->state_saved) in pci_pm_restore()
1253 pci_restore_standard_config(pci_dev); in pci_pm_restore()
1255 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore()
1258 pci_pm_default_resume(pci_dev); in pci_pm_restore()
1264 pci_pm_reenable_device(pci_dev); in pci_pm_restore()
1288 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_suspend() local
1290 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1293 pci_suspend_ptm(pci_dev); in pci_pm_runtime_suspend()
1300 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1301 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1305 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1314 pci_dbg(pci_dev, "can't suspend now (%ps returned %d)\n", in pci_pm_runtime_suspend()
1318 pci_err(pci_dev, "can't suspend (%ps returned %d)\n", in pci_pm_runtime_suspend()
1324 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_pm_runtime_suspend()
1327 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1328 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1329 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1335 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1336 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1337 pci_finish_runtime_suspend(pci_dev); in pci_pm_runtime_suspend()
1345 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_resume() local
1347 pci_power_t prev_state = pci_dev->current_state; in pci_pm_runtime_resume()
1355 pci_pm_default_resume_early(pci_dev); in pci_pm_runtime_resume()
1356 pci_resume_ptm(pci_dev); in pci_pm_runtime_resume()
1358 if (!pci_dev->driver) in pci_pm_runtime_resume()
1361 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_runtime_resume()
1362 pci_pm_default_resume(pci_dev); in pci_pm_runtime_resume()
1365 pci_pm_bridge_power_up_actions(pci_dev); in pci_pm_runtime_resume()
1375 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_idle() local
1382 if (!pci_dev->driver) in pci_pm_runtime_idle()
1487 struct pci_driver *pci_dev_driver(const struct pci_dev *dev) in pci_dev_driver()
1513 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_bus_match() local
1517 if (!pci_dev->match_driver) in pci_bus_match()
1521 found_id = pci_match_device(pci_drv, pci_dev); in pci_bus_match()
1540 struct pci_dev *pci_dev_get(struct pci_dev *dev) in pci_dev_get()
1555 void pci_dev_put(struct pci_dev *dev) in pci_dev_put()
1564 const struct pci_dev *pdev; in pci_uevent()
1600 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type) in pci_uevent_ers()