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()
405 static inline bool pci_device_can_probe(struct pci_dev *pdev) in pci_device_can_probe()
414 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_probe() local
417 pci_assign_irq(pci_dev); in pci_device_probe()
419 error = pcibios_alloc_irq(pci_dev); in pci_device_probe()
423 pci_dev_get(pci_dev); in pci_device_probe()
424 if (pci_device_can_probe(pci_dev)) { in pci_device_probe()
425 error = __pci_device_probe(drv, pci_dev); in pci_device_probe()
427 pcibios_free_irq(pci_dev); in pci_device_probe()
428 pci_dev_put(pci_dev); in pci_device_probe()
437 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_remove() local
438 struct pci_driver *drv = pci_dev->driver; in pci_device_remove()
443 drv->remove(pci_dev); in pci_device_remove()
446 pcibios_free_irq(pci_dev); in pci_device_remove()
447 pci_dev->driver = NULL; in pci_device_remove()
448 pci_iov_remove(pci_dev); in pci_device_remove()
458 if (pci_dev->current_state == PCI_D0) in pci_device_remove()
459 pci_dev->current_state = PCI_UNKNOWN; in pci_device_remove()
470 pci_dev_put(pci_dev); in pci_device_remove()
476 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_device_shutdown() local
477 struct pci_driver *drv = pci_dev->driver; in pci_device_shutdown()
482 drv->shutdown(pci_dev); in pci_device_shutdown()
491 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot)) in pci_device_shutdown()
492 pci_clear_master(pci_dev); in pci_device_shutdown()
503 static int pci_restore_standard_config(struct pci_dev *pci_dev) in pci_restore_standard_config() argument
505 pci_update_current_state(pci_dev, PCI_UNKNOWN); in pci_restore_standard_config()
507 if (pci_dev->current_state != PCI_D0) { in pci_restore_standard_config()
508 int error = pci_set_power_state(pci_dev, PCI_D0); in pci_restore_standard_config()
513 pci_restore_state(pci_dev); in pci_restore_standard_config()
514 pci_pme_restore(pci_dev); in pci_restore_standard_config()
522 static void pci_pm_default_resume_early(struct pci_dev *pci_dev) in pci_pm_default_resume_early() argument
524 pci_power_up(pci_dev); in pci_pm_default_resume_early()
525 pci_restore_state(pci_dev); in pci_pm_default_resume_early()
526 pci_pme_restore(pci_dev); in pci_pm_default_resume_early()
527 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_default_resume_early()
534 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev) in pci_pm_set_unknown_state() argument
540 if (pci_dev->current_state == PCI_D0) in pci_pm_set_unknown_state()
541 pci_dev->current_state = PCI_UNKNOWN; in pci_pm_set_unknown_state()
548 static int pci_pm_reenable_device(struct pci_dev *pci_dev) in pci_pm_reenable_device() argument
553 retval = pci_reenable_device(pci_dev); in pci_pm_reenable_device()
558 if (pci_dev->is_busmaster) in pci_pm_reenable_device()
559 pci_set_master(pci_dev); in pci_pm_reenable_device()
566 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend() local
567 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend()
570 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend()
573 error = drv->suspend(pci_dev, state); in pci_legacy_suspend()
578 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend()
579 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend()
580 WARN_ONCE(pci_dev->current_state != prev, in pci_legacy_suspend()
586 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_legacy_suspend()
593 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_suspend_late() local
594 struct pci_driver *drv = pci_dev->driver; in pci_legacy_suspend_late()
597 pci_power_t prev = pci_dev->current_state; in pci_legacy_suspend_late()
600 error = drv->suspend_late(pci_dev, state); in pci_legacy_suspend_late()
605 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_legacy_suspend_late()
606 && pci_dev->current_state != PCI_UNKNOWN) { in pci_legacy_suspend_late()
607 WARN_ONCE(pci_dev->current_state != prev, in pci_legacy_suspend_late()
614 if (!pci_dev->state_saved) in pci_legacy_suspend_late()
615 pci_save_state(pci_dev); in pci_legacy_suspend_late()
617 pci_pm_set_unknown_state(pci_dev); in pci_legacy_suspend_late()
620 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_legacy_suspend_late()
627 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume_early() local
628 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume_early()
631 drv->resume_early(pci_dev) : 0; in pci_legacy_resume_early()
636 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_legacy_resume() local
637 struct pci_driver *drv = pci_dev->driver; in pci_legacy_resume()
639 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_legacy_resume()
642 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev); in pci_legacy_resume()
647 static void pci_pm_default_resume(struct pci_dev *pci_dev) in pci_pm_default_resume() argument
649 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_default_resume()
650 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_default_resume()
653 static void pci_pm_default_suspend(struct pci_dev *pci_dev) in pci_pm_default_suspend() argument
656 if (!pci_has_subordinate(pci_dev)) in pci_pm_default_suspend()
657 pci_disable_enabled_device(pci_dev); in pci_pm_default_suspend()
660 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev) in pci_has_legacy_pm_support() argument
662 struct pci_driver *drv = pci_dev->driver; in pci_has_legacy_pm_support()
672 drv->name, pci_dev->vendor, pci_dev->device); in pci_has_legacy_pm_support()
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_update_current_state(pci_dev, pci_dev->current_state); in pci_pm_complete()
706 if (pci_dev->current_state < pre_sleep_state) in pci_pm_complete()
719 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) in pcie_pme_root_status_cleanup() argument
726 if (pci_is_pcie(pci_dev) && in pcie_pme_root_status_cleanup()
727 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || in pcie_pme_root_status_cleanup()
728 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) in pcie_pme_root_status_cleanup()
729 pcie_clear_root_pme_status(pci_dev); in pcie_pme_root_status_cleanup()
734 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend() local
737 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend()
741 pci_pm_default_suspend(pci_dev); in pci_pm_suspend()
759 !pci_dev_keep_suspended(pci_dev)) { in pci_pm_suspend()
761 pci_dev->state_saved = false; in pci_pm_suspend()
765 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend()
773 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend()
774 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend()
775 WARN_ONCE(pci_dev->current_state != prev, in pci_pm_suspend()
796 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_suspend_noirq() local
804 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_suspend_noirq()
808 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
813 pci_power_t prev = pci_dev->current_state; in pci_pm_suspend_noirq()
821 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_suspend_noirq()
822 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_suspend_noirq()
823 WARN_ONCE(pci_dev->current_state != prev, in pci_pm_suspend_noirq()
830 if (!pci_dev->state_saved) { in pci_pm_suspend_noirq()
831 pci_save_state(pci_dev); in pci_pm_suspend_noirq()
832 if (pci_power_manageable(pci_dev)) in pci_pm_suspend_noirq()
833 pci_prepare_to_sleep(pci_dev); in pci_pm_suspend_noirq()
837 pci_power_name(pci_dev->current_state)); in pci_pm_suspend_noirq()
839 pci_pm_set_unknown_state(pci_dev); in pci_pm_suspend_noirq()
850 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_suspend_noirq()
851 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_suspend_noirq()
854 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_suspend_noirq()
871 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume_noirq() local
886 pci_pm_default_resume_early(pci_dev); in pci_pm_resume_noirq()
888 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume_noirq()
891 pcie_pme_root_status_cleanup(pci_dev); in pci_pm_resume_noirq()
901 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_resume() local
909 if (pci_dev->state_saved) in pci_pm_resume()
910 pci_restore_standard_config(pci_dev); in pci_pm_resume()
912 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_resume()
915 pci_pm_default_resume(pci_dev); in pci_pm_resume()
921 pci_pm_reenable_device(pci_dev); in pci_pm_resume()
948 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze() local
951 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze()
955 pci_pm_default_suspend(pci_dev); in pci_pm_freeze()
967 pci_dev->state_saved = false; in pci_pm_freeze()
992 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_freeze_noirq() local
998 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_freeze_noirq()
1010 if (!pci_dev->state_saved) in pci_pm_freeze_noirq()
1011 pci_save_state(pci_dev); in pci_pm_freeze_noirq()
1013 pci_pm_set_unknown_state(pci_dev); in pci_pm_freeze_noirq()
1023 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_thaw_noirq() local
1043 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_thaw_noirq()
1051 pci_set_power_state(pci_dev, PCI_D0); in pci_pm_thaw_noirq()
1052 pci_restore_state(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_keep_suspended(pci_dev)) in pci_pm_poweroff()
1099 pci_dev->state_saved = false; in pci_pm_poweroff()
1124 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_poweroff_noirq() local
1134 pci_fixup_device(pci_fixup_suspend_late, pci_dev); in pci_pm_poweroff_noirq()
1147 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) in pci_pm_poweroff_noirq()
1148 pci_prepare_to_sleep(pci_dev); in pci_pm_poweroff_noirq()
1154 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI) in pci_pm_poweroff_noirq()
1155 pci_write_config_word(pci_dev, PCI_COMMAND, 0); in pci_pm_poweroff_noirq()
1157 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
1181 pci_pm_default_resume_early(pci_dev); in pci_pm_restore_noirq()
1183 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore_noirq()
1194 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_restore() local
1202 if (pci_dev->state_saved) in pci_pm_restore()
1203 pci_restore_standard_config(pci_dev); in pci_pm_restore()
1205 if (pci_has_legacy_pm_support(pci_dev)) in pci_pm_restore()
1208 pci_pm_default_resume(pci_dev); in pci_pm_restore()
1214 pci_pm_reenable_device(pci_dev); in pci_pm_restore()
1239 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_suspend() local
1241 pci_power_t prev = pci_dev->current_state; in pci_pm_runtime_suspend()
1249 if (!pci_dev->driver) { in pci_pm_runtime_suspend()
1250 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1257 pci_dev->state_saved = false; in pci_pm_runtime_suspend()
1275 pci_fixup_device(pci_fixup_suspend, pci_dev); in pci_pm_runtime_suspend()
1277 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 in pci_pm_runtime_suspend()
1278 && pci_dev->current_state != PCI_UNKNOWN) { in pci_pm_runtime_suspend()
1279 WARN_ONCE(pci_dev->current_state != prev, in pci_pm_runtime_suspend()
1285 if (!pci_dev->state_saved) { in pci_pm_runtime_suspend()
1286 pci_save_state(pci_dev); in pci_pm_runtime_suspend()
1287 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
1304 pci_restore_standard_config(pci_dev); in pci_pm_runtime_resume()
1306 if (!pci_dev->driver) in pci_pm_runtime_resume()
1312 pci_fixup_device(pci_fixup_resume_early, pci_dev); in pci_pm_runtime_resume()
1313 pci_enable_wake(pci_dev, PCI_D0, false); in pci_pm_runtime_resume()
1314 pci_fixup_device(pci_fixup_resume, pci_dev); in pci_pm_runtime_resume()
1318 pci_dev->runtime_d3cold = false; in pci_pm_runtime_resume()
1325 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_pm_runtime_idle() local
1333 if (!pci_dev->driver) in pci_pm_runtime_idle()
1437 struct pci_driver *pci_dev_driver(const struct pci_dev *dev) in pci_dev_driver()
1462 struct pci_dev *pci_dev = to_pci_dev(dev); in pci_bus_match() local
1466 if (!pci_dev->match_driver) in pci_bus_match()
1470 found_id = pci_match_device(pci_drv, pci_dev); in pci_bus_match()
1489 struct pci_dev *pci_dev_get(struct pci_dev *dev) in pci_dev_get()
1504 void pci_dev_put(struct pci_dev *dev) in pci_dev_put()
1513 struct pci_dev *pdev; in pci_uevent()
1549 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type) in pci_uevent_ers()