Lines Matching refs:pci_dev

105 					 struct pci_dev *dev)  in pci_match_id()
136 struct pci_dev *dev) in pci_match_device()
205 struct pci_dev *pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); in new_id_store()
300 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()
340 static bool pci_physfn_is_probed(struct pci_dev *dev) in pci_physfn_is_probed()
349 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe()
395 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) in __pci_device_probe() argument
400 if (!pci_dev->driver && drv->probe) { in __pci_device_probe()
403 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
405 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
410 int __weak pcibios_alloc_irq(struct pci_dev *dev) in pcibios_alloc_irq()
415 void __weak pcibios_free_irq(struct pci_dev *dev) in pcibios_free_irq()
420 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
426 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
435 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_probe() local
438 if (!pci_device_can_probe(pci_dev)) in pci_device_probe()
441 pci_assign_irq(pci_dev); in pci_device_probe()
443 error = pcibios_alloc_irq(pci_dev); in pci_device_probe()
447 pci_dev_get(pci_dev); in pci_device_probe()
448 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
450 pcibios_free_irq(pci_dev); in pci_device_probe()
451 pci_dev_put(pci_dev); in pci_device_probe()
459 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_remove() local
460 struct pci_driver *drv = pci_dev->driver; in pci_device_remove()
465 drv->remove(pci_dev); in pci_device_remove()
468 pcibios_free_irq(pci_dev); in pci_device_remove()
469 pci_dev->driver = NULL; in pci_device_remove()
470 pci_iov_remove(pci_dev); in pci_device_remove()
480 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
481 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
492 pci_dev_put(pci_dev); in pci_device_remove()
497 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_shutdown() local
498 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown()
503 drv->shutdown(pci_dev); in pci_device_shutdown()
512 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
513 pci_clear_master(pci_dev); in pci_device_shutdown()
524 static int pci_restore_standard_config(struct pci_dev *pci_dev) in pci_restore_standard_config() argument
526 pci_update_current_state(pci_dev, PCI_UNKNOWN); in pci_restore_standard_config()
528 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
529 int error = pci_set_power_state(pci_dev, PCI_D0); in pci_restore_standard_config()
534 pci_restore_state(pci_dev); in pci_restore_standard_config()
535 pci_pme_restore(pci_dev); in pci_restore_standard_config()
539 static void pci_pm_default_resume(struct pci_dev *pci_dev) in pci_pm_default_resume() argument
541 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_default_resume()
542 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_default_resume()
549 static void pci_pm_default_resume_early(struct pci_dev *pci_dev) in pci_pm_default_resume_early() argument
551 pci_power_up(pci_dev); in pci_pm_default_resume_early()
552 pci_update_current_state(pci_dev, PCI_D0); in pci_pm_default_resume_early()
553 pci_restore_state(pci_dev); in pci_pm_default_resume_early()
554 pci_pme_restore(pci_dev); in pci_pm_default_resume_early()
561 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev) in pci_pm_set_unknown_state() argument
567 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
568 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
575 static int pci_pm_reenable_device(struct pci_dev *pci_dev) in pci_pm_reenable_device() argument
580 retval = pci_reenable_device(pci_dev); in pci_pm_reenable_device()
585 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
586 pci_set_master(pci_dev); in pci_pm_reenable_device()
593 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend() local
594 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend()
597 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
600 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
605 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
606 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
607 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_legacy_suspend()
613 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_legacy_suspend()
620 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend_late() local
622 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
623 pci_save_state(pci_dev); in pci_legacy_suspend_late()
625 pci_pm_set_unknown_state(pci_dev); in pci_legacy_suspend_late()
627 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_legacy_suspend_late()
634 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume() local
635 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume()
637 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_legacy_resume()
640 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
645 static void pci_pm_default_suspend(struct pci_dev *pci_dev) in pci_pm_default_suspend() argument
648 if (!pci_has_subordinate(pci_dev)) in pci_pm_default_suspend()
649 pci_disable_enabled_device(pci_dev); in pci_pm_default_suspend()
652 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev) in pci_has_legacy_pm_support() argument
654 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support()
662 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support()
663 pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
672 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_prepare() local
683 if (pci_dev_need_resume(pci_dev)) in pci_pm_prepare()
690 pci_dev_adjust_pme(pci_dev); in pci_pm_prepare()
696 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_complete() local
698 pci_dev_complete_resume(pci_dev); in pci_pm_complete()
703 pci_power_t pre_sleep_state = pci_dev->current_state; in pci_pm_complete()
705 pci_refresh_power_state(pci_dev); in pci_pm_complete()
713 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
726 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) in pcie_pme_root_status_cleanup() argument
733 if (pci_is_pcie(pci_dev) && in pcie_pme_root_status_cleanup()
734 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || in pcie_pme_root_status_cleanup()
735 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) in pcie_pme_root_status_cleanup()
736 pcie_clear_root_pme_status(pci_dev); in pcie_pme_root_status_cleanup()
741 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend() local
744 pci_dev->skip_bus_pm = false; in pci_pm_suspend()
746 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend()
750 pci_pm_default_suspend(pci_dev); in pci_pm_suspend()
768 pci_dev_need_resume(pci_dev)) { in pci_pm_suspend()
770 pci_dev->state_saved = false; in pci_pm_suspend()
772 pci_dev_adjust_pme(pci_dev); in pci_pm_suspend()
776 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
784 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
785 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
786 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend()
807 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend_noirq() local
813 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend_noirq()
817 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
822 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
830 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
831 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
832 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend_noirq()
839 if (pci_dev->skip_bus_pm) { in pci_pm_suspend_noirq()
848 if (!pci_dev->state_saved) in pci_pm_suspend_noirq()
849 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
850 } else if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
851 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
852 if (pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
853 pci_prepare_to_sleep(pci_dev); in pci_pm_suspend_noirq()
856 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n", in pci_pm_suspend_noirq()
857 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
859 if (pci_dev->current_state == PCI_D0) { in pci_pm_suspend_noirq()
860 pci_dev->skip_bus_pm = true; in pci_pm_suspend_noirq()
866 if (pci_dev->bus->self) in pci_pm_suspend_noirq()
867 pci_dev->bus->self->skip_bus_pm = true; in pci_pm_suspend_noirq()
870 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { in pci_pm_suspend_noirq()
871 pci_dbg(pci_dev, "PCI PM: Skipped\n"); in pci_pm_suspend_noirq()
875 pci_pm_set_unknown_state(pci_dev); in pci_pm_suspend_noirq()
886 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
887 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_suspend_noirq()
890 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_suspend_noirq()
907 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume_noirq() local
909 pci_power_t prev_state = pci_dev->current_state; in pci_pm_resume_noirq()
910 bool skip_bus_pm = pci_dev->skip_bus_pm; in pci_pm_resume_noirq()
922 pci_pm_default_resume_early(pci_dev); in pci_pm_resume_noirq()
924 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_resume_noirq()
925 pcie_pme_root_status_cleanup(pci_dev); in pci_pm_resume_noirq()
928 pci_bridge_wait_for_secondary_bus(pci_dev); in pci_pm_resume_noirq()
930 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume_noirq()
949 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume() local
956 if (pci_dev->state_saved) in pci_pm_resume()
957 pci_restore_standard_config(pci_dev); in pci_pm_resume()
959 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume()
962 pci_pm_default_resume(pci_dev); in pci_pm_resume()
968 pci_pm_reenable_device(pci_dev); in pci_pm_resume()
989 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze() local
992 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze()
996 pci_pm_default_suspend(pci_dev); in pci_pm_freeze()
1009 pci_dev->state_saved = false; in pci_pm_freeze()
1025 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze_noirq() local
1028 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze_noirq()
1040 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1041 pci_save_state(pci_dev); in pci_pm_freeze_noirq()
1043 pci_pm_set_unknown_state(pci_dev); in pci_pm_freeze_noirq()
1050 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw_noirq() local
1062 pci_set_power_state(pci_dev, PCI_D0); in pci_pm_thaw_noirq()
1063 pci_restore_state(pci_dev); in pci_pm_thaw_noirq()
1065 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw_noirq()
1076 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw() local
1080 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw()
1087 pci_pm_reenable_device(pci_dev); in pci_pm_thaw()
1090 pci_dev->state_saved = false; in pci_pm_thaw()
1097 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff() local
1100 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff()
1104 pci_pm_default_suspend(pci_dev); in pci_pm_poweroff()
1110 pci_dev_need_resume(pci_dev)) { in pci_pm_poweroff()
1112 pci_dev->state_saved = false; in pci_pm_poweroff()
1114 pci_dev_adjust_pme(pci_dev); in pci_pm_poweroff()
1141 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff_noirq() local
1147 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff_noirq()
1151 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1164 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1165 pci_prepare_to_sleep(pci_dev); in pci_pm_poweroff_noirq()
1171 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1172 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_poweroff_noirq()
1174 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1181 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore_noirq() local
1184 pci_pm_default_resume_early(pci_dev); in pci_pm_restore_noirq()
1185 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_restore_noirq()
1187 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore_noirq()
1198 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore() local
1205 if (pci_dev->state_saved) in pci_pm_restore()
1206 pci_restore_standard_config(pci_dev); in pci_pm_restore()
1208 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore()
1211 pci_pm_default_resume(pci_dev); in pci_pm_restore()
1217 pci_pm_reenable_device(pci_dev); in pci_pm_restore()
1241 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_suspend() local
1243 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1251 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1252 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1256 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1265 pci_dbg(pci_dev, "can't suspend now (%ps returned %d)\n", in pci_pm_runtime_suspend()
1269 pci_err(pci_dev, "can't suspend (%ps returned %d)\n", in pci_pm_runtime_suspend()
1275 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_pm_runtime_suspend()
1278 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1279 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1280 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1286 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1287 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1288 pci_finish_runtime_suspend(pci_dev); in pci_pm_runtime_suspend()
1296 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_resume() local
1298 pci_power_t prev_state = pci_dev->current_state; in pci_pm_runtime_resume()
1306 pci_restore_standard_config(pci_dev); in pci_pm_runtime_resume()
1308 if (!pci_dev->driver) in pci_pm_runtime_resume()
1311 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_runtime_resume()
1312 pci_pm_default_resume(pci_dev); in pci_pm_runtime_resume()
1315 pci_bridge_wait_for_secondary_bus(pci_dev); in pci_pm_runtime_resume()
1320 pci_dev->runtime_d3cold = false; in pci_pm_runtime_resume()
1327 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_idle() local
1334 if (!pci_dev->driver) in pci_pm_runtime_idle()
1439 struct pci_driver *pci_dev_driver(const struct pci_dev *dev) in pci_dev_driver()
1464 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_bus_match() local
1468 if (!pci_dev->match_driver) in pci_bus_match()
1472 found_id = pci_match_device(pci_drv, pci_dev); in pci_bus_match()
1491 struct pci_dev *pci_dev_get(struct pci_dev *dev) in pci_dev_get()
1506 void pci_dev_put(struct pci_dev *dev) in pci_dev_put()
1515 struct pci_dev *pdev; in pci_uevent()
1551 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type) in pci_uevent_ers()