Lines Matching refs:pci_dev
116 struct pci_dev *pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); in new_id_store()
222 struct pci_dev *dev) in pci_match_id()
252 struct pci_dev *dev) in pci_match_device()
283 struct pci_dev *dev;
290 struct pci_dev *pci_dev = ddi->dev; in local_pci_probe() local
292 struct device *dev = &pci_dev->dev; in local_pci_probe()
305 pci_dev->driver = pci_drv; in local_pci_probe()
306 rc = pci_drv->probe(pci_dev, ddi->id); in local_pci_probe()
310 pci_dev->driver = NULL; in local_pci_probe()
322 static bool pci_physfn_is_probed(struct pci_dev *dev) in pci_physfn_is_probed()
331 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe()
375 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) in __pci_device_probe() argument
380 if (!pci_dev->driver && drv->probe) { in __pci_device_probe()
383 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
385 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
390 int __weak pcibios_alloc_irq(struct pci_dev *dev) in pcibios_alloc_irq()
395 void __weak pcibios_free_irq(struct pci_dev *dev) in pcibios_free_irq()
400 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
406 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
415 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_probe() local
418 if (!pci_device_can_probe(pci_dev)) in pci_device_probe()
421 pci_assign_irq(pci_dev); in pci_device_probe()
423 error = pcibios_alloc_irq(pci_dev); in pci_device_probe()
427 pci_dev_get(pci_dev); in pci_device_probe()
428 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
430 pcibios_free_irq(pci_dev); in pci_device_probe()
431 pci_dev_put(pci_dev); in pci_device_probe()
439 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_remove() local
440 struct pci_driver *drv = pci_dev->driver; in pci_device_remove()
445 drv->remove(pci_dev); in pci_device_remove()
448 pcibios_free_irq(pci_dev); in pci_device_remove()
449 pci_dev->driver = NULL; in pci_device_remove()
450 pci_iov_remove(pci_dev); in pci_device_remove()
460 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
461 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
472 pci_dev_put(pci_dev); in pci_device_remove()
478 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_shutdown() local
479 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown()
484 drv->shutdown(pci_dev); in pci_device_shutdown()
493 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
494 pci_clear_master(pci_dev); in pci_device_shutdown()
505 static int pci_restore_standard_config(struct pci_dev *pci_dev) in pci_restore_standard_config() argument
507 pci_update_current_state(pci_dev, PCI_UNKNOWN); in pci_restore_standard_config()
509 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
510 int error = pci_set_power_state(pci_dev, PCI_D0); in pci_restore_standard_config()
515 pci_restore_state(pci_dev); in pci_restore_standard_config()
516 pci_pme_restore(pci_dev); in pci_restore_standard_config()
524 static void pci_pm_default_resume_early(struct pci_dev *pci_dev) in pci_pm_default_resume_early() argument
526 pci_power_up(pci_dev); in pci_pm_default_resume_early()
527 pci_restore_state(pci_dev); in pci_pm_default_resume_early()
528 pci_pme_restore(pci_dev); in pci_pm_default_resume_early()
535 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev) in pci_pm_set_unknown_state() argument
541 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
542 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
549 static int pci_pm_reenable_device(struct pci_dev *pci_dev) in pci_pm_reenable_device() argument
554 retval = pci_reenable_device(pci_dev); in pci_pm_reenable_device()
559 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
560 pci_set_master(pci_dev); in pci_pm_reenable_device()
567 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend() local
568 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend()
571 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
574 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
579 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
580 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
581 WARN_ONCE(pci_dev->current_state != prev, in pci_legacy_suspend()
587 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_legacy_suspend()
594 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend_late() local
595 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend_late()
598 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend_late()
601 error = drv->suspend_late(pci_dev, state); in pci_legacy_suspend_late()
606 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend_late()
607 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend_late()
608 WARN_ONCE(pci_dev->current_state != prev, in pci_legacy_suspend_late()
615 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
616 pci_save_state(pci_dev); in pci_legacy_suspend_late()
618 pci_pm_set_unknown_state(pci_dev); in pci_legacy_suspend_late()
621 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_legacy_suspend_late()
628 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume_early() local
629 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume_early()
632 drv->resume_early(pci_dev) : 0; in pci_legacy_resume_early()
637 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume() local
638 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume()
640 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_legacy_resume()
643 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
648 static void pci_pm_default_resume(struct pci_dev *pci_dev) in pci_pm_default_resume() argument
650 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_default_resume()
651 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_default_resume()
654 static void pci_pm_default_suspend(struct pci_dev *pci_dev) in pci_pm_default_suspend() argument
657 if (!pci_has_subordinate(pci_dev)) in pci_pm_default_suspend()
658 pci_disable_enabled_device(pci_dev); in pci_pm_default_suspend()
661 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev) in pci_has_legacy_pm_support() argument
663 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support()
673 drv->name, pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
683 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_prepare() local
693 if (pci_dev_need_resume(pci_dev)) in pci_pm_prepare()
700 pci_dev_adjust_pme(pci_dev); in pci_pm_prepare()
706 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_complete() local
708 pci_dev_complete_resume(pci_dev); in pci_pm_complete()
713 pci_power_t pre_sleep_state = pci_dev->current_state; in pci_pm_complete()
715 pci_refresh_power_state(pci_dev); in pci_pm_complete()
723 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
736 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) in pcie_pme_root_status_cleanup() argument
743 if (pci_is_pcie(pci_dev) && in pcie_pme_root_status_cleanup()
744 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || in pcie_pme_root_status_cleanup()
745 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) in pcie_pme_root_status_cleanup()
746 pcie_clear_root_pme_status(pci_dev); in pcie_pme_root_status_cleanup()
751 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend() local
754 pci_dev->skip_bus_pm = false; in pci_pm_suspend()
756 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend()
760 pci_pm_default_suspend(pci_dev); in pci_pm_suspend()
778 pci_dev_need_resume(pci_dev)) { in pci_pm_suspend()
780 pci_dev->state_saved = false; in pci_pm_suspend()
782 pci_dev_adjust_pme(pci_dev); in pci_pm_suspend()
786 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
794 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
795 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
796 WARN_ONCE(pci_dev->current_state != prev, in pci_pm_suspend()
817 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend_noirq() local
825 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend_noirq()
829 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
834 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
842 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
843 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
844 WARN_ONCE(pci_dev->current_state != prev, in pci_pm_suspend_noirq()
851 if (pci_dev->skip_bus_pm) { in pci_pm_suspend_noirq()
860 if (!pci_dev->state_saved) in pci_pm_suspend_noirq()
861 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
862 } else if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
863 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
864 if (pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
865 pci_prepare_to_sleep(pci_dev); in pci_pm_suspend_noirq()
869 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
871 if (pci_dev->current_state == PCI_D0) { in pci_pm_suspend_noirq()
872 pci_dev->skip_bus_pm = true; in pci_pm_suspend_noirq()
878 if (pci_dev->bus->self) in pci_pm_suspend_noirq()
879 pci_dev->bus->self->skip_bus_pm = true; in pci_pm_suspend_noirq()
882 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { in pci_pm_suspend_noirq()
887 pci_pm_set_unknown_state(pci_dev); in pci_pm_suspend_noirq()
898 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
899 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_suspend_noirq()
902 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_suspend_noirq()
919 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume_noirq() local
940 if (!(pci_dev->skip_bus_pm && pm_suspend_no_platform())) in pci_pm_resume_noirq()
941 pci_pm_default_resume_early(pci_dev); in pci_pm_resume_noirq()
943 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_resume_noirq()
945 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume_noirq()
948 pcie_pme_root_status_cleanup(pci_dev); in pci_pm_resume_noirq()
958 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume() local
966 if (pci_dev->state_saved) in pci_pm_resume()
967 pci_restore_standard_config(pci_dev); in pci_pm_resume()
969 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume()
972 pci_pm_default_resume(pci_dev); in pci_pm_resume()
978 pci_pm_reenable_device(pci_dev); in pci_pm_resume()
1005 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze() local
1008 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze()
1012 pci_pm_default_suspend(pci_dev); in pci_pm_freeze()
1025 pci_dev->state_saved = false; in pci_pm_freeze()
1041 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze_noirq() local
1044 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze_noirq()
1056 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1057 pci_save_state(pci_dev); in pci_pm_freeze_noirq()
1059 pci_pm_set_unknown_state(pci_dev); in pci_pm_freeze_noirq()
1069 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw_noirq() local
1079 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw_noirq()
1087 pci_set_power_state(pci_dev, PCI_D0); in pci_pm_thaw_noirq()
1088 pci_restore_state(pci_dev); in pci_pm_thaw_noirq()
1098 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw() local
1102 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw()
1109 pci_pm_reenable_device(pci_dev); in pci_pm_thaw()
1112 pci_dev->state_saved = false; in pci_pm_thaw()
1119 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff() local
1122 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff()
1126 pci_pm_default_suspend(pci_dev); in pci_pm_poweroff()
1132 pci_dev_need_resume(pci_dev)) { in pci_pm_poweroff()
1134 pci_dev->state_saved = false; in pci_pm_poweroff()
1136 pci_dev_adjust_pme(pci_dev); in pci_pm_poweroff()
1163 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff_noirq() local
1173 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1186 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1187 pci_prepare_to_sleep(pci_dev); in pci_pm_poweroff_noirq()
1193 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1194 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_poweroff_noirq()
1196 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1206 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore_noirq() local
1216 pci_pm_default_resume_early(pci_dev); in pci_pm_restore_noirq()
1217 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_restore_noirq()
1219 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore_noirq()
1230 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore() local
1238 if (pci_dev->state_saved) in pci_pm_restore()
1239 pci_restore_standard_config(pci_dev); in pci_pm_restore()
1241 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore()
1244 pci_pm_default_resume(pci_dev); in pci_pm_restore()
1250 pci_pm_reenable_device(pci_dev); in pci_pm_restore()
1274 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_suspend() local
1276 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1284 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1285 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1289 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1308 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_pm_runtime_suspend()
1311 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1312 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1313 WARN_ONCE(pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1319 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1320 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1321 pci_finish_runtime_suspend(pci_dev); in pci_pm_runtime_suspend()
1330 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_resume() local
1338 pci_restore_standard_config(pci_dev); in pci_pm_runtime_resume()
1340 if (!pci_dev->driver) in pci_pm_runtime_resume()
1343 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_runtime_resume()
1344 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_runtime_resume()
1345 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_runtime_resume()
1350 pci_dev->runtime_d3cold = false; in pci_pm_runtime_resume()
1357 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_idle() local
1365 if (!pci_dev->driver) in pci_pm_runtime_idle()
1468 struct pci_driver *pci_dev_driver(const struct pci_dev *dev) in pci_dev_driver()
1493 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_bus_match() local
1497 if (!pci_dev->match_driver) in pci_bus_match()
1501 found_id = pci_match_device(pci_drv, pci_dev); in pci_bus_match()
1520 struct pci_dev *pci_dev_get(struct pci_dev *dev) in pci_dev_get()
1535 void pci_dev_put(struct pci_dev *dev) in pci_dev_put()
1544 struct pci_dev *pdev; in pci_uevent()
1580 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type) in pci_uevent_ers()