Lines Matching refs:pci_dev
118 struct pci_dev *pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); in new_id_store()
224 struct pci_dev *dev) in pci_match_id()
254 struct pci_dev *dev) in pci_match_device()
285 struct pci_dev *dev;
292 struct pci_dev *pci_dev = ddi->dev; in local_pci_probe() local
294 struct device *dev = &pci_dev->dev; in local_pci_probe()
307 pci_dev->driver = pci_drv; in local_pci_probe()
308 rc = pci_drv->probe(pci_dev, ddi->id); in local_pci_probe()
312 pci_dev->driver = NULL; in local_pci_probe()
320 pci_warn(pci_dev, "Driver probe function unexpectedly returned %d\n", in local_pci_probe()
325 static bool pci_physfn_is_probed(struct pci_dev *dev) in pci_physfn_is_probed()
334 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, in pci_call_probe()
380 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) in __pci_device_probe() argument
385 if (!pci_dev->driver && drv->probe) { in __pci_device_probe()
388 id = pci_match_device(drv, pci_dev); in __pci_device_probe()
390 error = pci_call_probe(drv, pci_dev, id); in __pci_device_probe()
395 int __weak pcibios_alloc_irq(struct pci_dev *dev) in pcibios_alloc_irq()
400 void __weak pcibios_free_irq(struct pci_dev *dev) in pcibios_free_irq()
405 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
411 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
420 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_probe() local
423 if (!pci_device_can_probe(pci_dev)) in pci_device_probe()
426 pci_assign_irq(pci_dev); in pci_device_probe()
428 error = pcibios_alloc_irq(pci_dev); in pci_device_probe()
432 pci_dev_get(pci_dev); in pci_device_probe()
433 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
435 pcibios_free_irq(pci_dev); in pci_device_probe()
436 pci_dev_put(pci_dev); in pci_device_probe()
444 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_remove() local
445 struct pci_driver *drv = pci_dev->driver; in pci_device_remove()
450 drv->remove(pci_dev); in pci_device_remove()
453 pcibios_free_irq(pci_dev); in pci_device_remove()
454 pci_dev->driver = NULL; in pci_device_remove()
455 pci_iov_remove(pci_dev); in pci_device_remove()
465 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
466 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
477 pci_dev_put(pci_dev); in pci_device_remove()
483 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_shutdown() local
484 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown()
489 drv->shutdown(pci_dev); in pci_device_shutdown()
498 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
499 pci_clear_master(pci_dev); in pci_device_shutdown()
510 static int pci_restore_standard_config(struct pci_dev *pci_dev) in pci_restore_standard_config() argument
512 pci_update_current_state(pci_dev, PCI_UNKNOWN); in pci_restore_standard_config()
514 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
515 int error = pci_set_power_state(pci_dev, PCI_D0); in pci_restore_standard_config()
520 pci_restore_state(pci_dev); in pci_restore_standard_config()
521 pci_pme_restore(pci_dev); in pci_restore_standard_config()
525 static void pci_pm_default_resume(struct pci_dev *pci_dev) in pci_pm_default_resume() argument
527 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_default_resume()
528 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_default_resume()
535 static void pci_pm_default_resume_early(struct pci_dev *pci_dev) in pci_pm_default_resume_early() argument
537 pci_power_up(pci_dev); in pci_pm_default_resume_early()
538 pci_update_current_state(pci_dev, PCI_D0); in pci_pm_default_resume_early()
539 pci_restore_state(pci_dev); in pci_pm_default_resume_early()
540 pci_pme_restore(pci_dev); in pci_pm_default_resume_early()
547 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev) in pci_pm_set_unknown_state() argument
553 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
554 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
561 static int pci_pm_reenable_device(struct pci_dev *pci_dev) in pci_pm_reenable_device() argument
566 retval = pci_reenable_device(pci_dev); in pci_pm_reenable_device()
571 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
572 pci_set_master(pci_dev); in pci_pm_reenable_device()
579 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend() local
580 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend()
583 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
586 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
591 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
592 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
593 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_legacy_suspend()
599 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_legacy_suspend()
606 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend_late() local
608 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
609 pci_save_state(pci_dev); in pci_legacy_suspend_late()
611 pci_pm_set_unknown_state(pci_dev); in pci_legacy_suspend_late()
613 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_legacy_suspend_late()
620 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume() local
621 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume()
623 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_legacy_resume()
626 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
631 static void pci_pm_default_suspend(struct pci_dev *pci_dev) in pci_pm_default_suspend() argument
634 if (!pci_has_subordinate(pci_dev)) in pci_pm_default_suspend()
635 pci_disable_enabled_device(pci_dev); in pci_pm_default_suspend()
638 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev) in pci_has_legacy_pm_support() argument
640 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support()
648 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support()
649 pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
658 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_prepare() local
669 if (pci_dev_need_resume(pci_dev)) in pci_pm_prepare()
676 pci_dev_adjust_pme(pci_dev); in pci_pm_prepare()
682 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_complete() local
684 pci_dev_complete_resume(pci_dev); in pci_pm_complete()
689 pci_power_t pre_sleep_state = pci_dev->current_state; in pci_pm_complete()
691 pci_refresh_power_state(pci_dev); in pci_pm_complete()
699 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
712 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) in pcie_pme_root_status_cleanup() argument
719 if (pci_is_pcie(pci_dev) && in pcie_pme_root_status_cleanup()
720 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || in pcie_pme_root_status_cleanup()
721 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) in pcie_pme_root_status_cleanup()
722 pcie_clear_root_pme_status(pci_dev); in pcie_pme_root_status_cleanup()
727 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend() local
730 pci_dev->skip_bus_pm = false; in pci_pm_suspend()
732 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend()
736 pci_pm_default_suspend(pci_dev); in pci_pm_suspend()
754 pci_dev_need_resume(pci_dev)) { in pci_pm_suspend()
756 pci_dev->state_saved = false; in pci_pm_suspend()
758 pci_dev_adjust_pme(pci_dev); in pci_pm_suspend()
762 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
770 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
771 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
772 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend()
793 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend_noirq() local
799 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend_noirq()
803 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
808 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
816 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
817 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
818 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_suspend_noirq()
825 if (pci_dev->skip_bus_pm) { in pci_pm_suspend_noirq()
834 if (!pci_dev->state_saved) in pci_pm_suspend_noirq()
835 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
836 } else if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
837 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
838 if (pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
839 pci_prepare_to_sleep(pci_dev); in pci_pm_suspend_noirq()
842 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n", in pci_pm_suspend_noirq()
843 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
845 if (pci_dev->current_state == PCI_D0) { in pci_pm_suspend_noirq()
846 pci_dev->skip_bus_pm = true; in pci_pm_suspend_noirq()
852 if (pci_dev->bus->self) in pci_pm_suspend_noirq()
853 pci_dev->bus->self->skip_bus_pm = true; in pci_pm_suspend_noirq()
856 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) { in pci_pm_suspend_noirq()
857 pci_dbg(pci_dev, "PCI PM: Skipped\n"); in pci_pm_suspend_noirq()
861 pci_pm_set_unknown_state(pci_dev); in pci_pm_suspend_noirq()
872 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
873 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_suspend_noirq()
876 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_suspend_noirq()
893 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume_noirq() local
895 pci_power_t prev_state = pci_dev->current_state; in pci_pm_resume_noirq()
896 bool skip_bus_pm = pci_dev->skip_bus_pm; in pci_pm_resume_noirq()
908 pci_pm_default_resume_early(pci_dev); in pci_pm_resume_noirq()
910 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_resume_noirq()
911 pcie_pme_root_status_cleanup(pci_dev); in pci_pm_resume_noirq()
914 pci_bridge_wait_for_secondary_bus(pci_dev, "resume", PCI_RESET_WAIT); in pci_pm_resume_noirq()
916 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume_noirq()
935 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume() local
942 if (pci_dev->state_saved) in pci_pm_resume()
943 pci_restore_standard_config(pci_dev); in pci_pm_resume()
945 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume()
948 pci_pm_default_resume(pci_dev); in pci_pm_resume()
954 pci_pm_reenable_device(pci_dev); in pci_pm_resume()
975 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze() local
978 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze()
982 pci_pm_default_suspend(pci_dev); in pci_pm_freeze()
995 pci_dev->state_saved = false; in pci_pm_freeze()
1011 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze_noirq() local
1014 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze_noirq()
1026 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1027 pci_save_state(pci_dev); in pci_pm_freeze_noirq()
1029 pci_pm_set_unknown_state(pci_dev); in pci_pm_freeze_noirq()
1036 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw_noirq() local
1048 pci_set_power_state(pci_dev, PCI_D0); in pci_pm_thaw_noirq()
1049 pci_restore_state(pci_dev); in pci_pm_thaw_noirq()
1051 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw_noirq()
1062 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw() local
1066 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw()
1073 pci_pm_reenable_device(pci_dev); in pci_pm_thaw()
1076 pci_dev->state_saved = false; in pci_pm_thaw()
1083 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff() local
1086 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff()
1090 pci_pm_default_suspend(pci_dev); in pci_pm_poweroff()
1096 pci_dev_need_resume(pci_dev)) { in pci_pm_poweroff()
1098 pci_dev->state_saved = false; in pci_pm_poweroff()
1100 pci_dev_adjust_pme(pci_dev); in pci_pm_poweroff()
1127 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff_noirq() local
1133 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_poweroff_noirq()
1137 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1150 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1151 pci_prepare_to_sleep(pci_dev); in pci_pm_poweroff_noirq()
1157 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1158 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_poweroff_noirq()
1160 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1167 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore_noirq() local
1170 pci_pm_default_resume_early(pci_dev); in pci_pm_restore_noirq()
1171 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_restore_noirq()
1173 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore_noirq()
1184 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore() local
1191 if (pci_dev->state_saved) in pci_pm_restore()
1192 pci_restore_standard_config(pci_dev); in pci_pm_restore()
1194 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore()
1197 pci_pm_default_resume(pci_dev); in pci_pm_restore()
1203 pci_pm_reenable_device(pci_dev); in pci_pm_restore()
1227 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_suspend() local
1229 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1237 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1238 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1242 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1251 pci_dbg(pci_dev, "can't suspend now (%ps returned %d)\n", in pci_pm_runtime_suspend()
1255 pci_err(pci_dev, "can't suspend (%ps returned %d)\n", in pci_pm_runtime_suspend()
1261 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_pm_runtime_suspend()
1264 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1265 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1266 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1272 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1273 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1274 pci_finish_runtime_suspend(pci_dev); in pci_pm_runtime_suspend()
1282 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_resume() local
1284 pci_power_t prev_state = pci_dev->current_state; in pci_pm_runtime_resume()
1292 pci_restore_standard_config(pci_dev); in pci_pm_runtime_resume()
1294 if (!pci_dev->driver) in pci_pm_runtime_resume()
1297 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_runtime_resume()
1298 pci_pm_default_resume(pci_dev); in pci_pm_runtime_resume()
1301 pci_bridge_wait_for_secondary_bus(pci_dev, "resume", PCI_RESET_WAIT); in pci_pm_runtime_resume()
1306 pci_dev->runtime_d3cold = false; in pci_pm_runtime_resume()
1313 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_idle() local
1320 if (!pci_dev->driver) in pci_pm_runtime_idle()
1424 struct pci_driver *pci_dev_driver(const struct pci_dev *dev) in pci_dev_driver()
1449 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_bus_match() local
1453 if (!pci_dev->match_driver) in pci_bus_match()
1457 found_id = pci_match_device(pci_drv, pci_dev); in pci_bus_match()
1476 struct pci_dev *pci_dev_get(struct pci_dev *dev) in pci_dev_get()
1491 void pci_dev_put(struct pci_dev *dev) in pci_dev_put()
1500 struct pci_dev *pdev; in pci_uevent()
1536 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type) in pci_uevent_ers()