Lines Matching refs:pci_dev

106 					 struct pci_dev *dev)
137 struct pci_dev *dev)
206 struct pci_dev *pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
301 struct pci_dev *dev;
308 struct pci_dev *pci_dev = ddi->dev;
310 struct device *dev = &pci_dev->dev;
323 pci_dev->driver = pci_drv;
324 rc = pci_drv->probe(pci_dev, ddi->id);
328 pci_dev->driver = NULL;
336 pci_warn(pci_dev, "Driver probe function unexpectedly returned %d\n",
341 static bool pci_physfn_is_probed(struct pci_dev *dev)
350 static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev,
402 * @pci_dev: PCI device being probed
405 * side-effect: pci_dev->driver is set to drv when drv claims pci_dev.
407 static int __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
415 id = pci_match_device(drv, pci_dev);
417 error = pci_call_probe(drv, pci_dev, id);
423 static inline bool pci_device_can_probe(struct pci_dev *pdev)
429 static inline bool pci_device_can_probe(struct pci_dev *pdev)
438 struct pci_dev *pci_dev = to_pci_dev(dev);
441 if (!pci_device_can_probe(pci_dev))
444 pci_assign_irq(pci_dev);
446 error = pcibios_alloc_irq(pci_dev);
450 pci_dev_get(pci_dev);
451 error = __pci_device_probe(drv, pci_dev);
453 pcibios_free_irq(pci_dev);
454 pci_dev_put(pci_dev);
462 struct pci_dev *pci_dev = to_pci_dev(dev);
463 struct pci_driver *drv = pci_dev->driver;
474 drv->remove(pci_dev);
477 pcibios_free_irq(pci_dev);
478 pci_dev->driver = NULL;
479 pci_iov_remove(pci_dev);
488 if (pci_dev->current_state == PCI_D0)
489 pci_dev->current_state = PCI_UNKNOWN;
492 * We would love to complain here if pci_dev->is_enabled is set, that
500 pci_dev_put(pci_dev);
505 struct pci_dev *pci_dev = to_pci_dev(dev);
506 struct pci_driver *drv = pci_dev->driver;
511 drv->shutdown(pci_dev);
520 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot))
521 pci_clear_master(pci_dev);
530 * @pci_dev: PCI device to handle
532 static int pci_restore_standard_config(struct pci_dev *pci_dev)
534 pci_update_current_state(pci_dev, PCI_UNKNOWN);
536 if (pci_dev->current_state != PCI_D0) {
537 int error = pci_set_power_state(pci_dev, PCI_D0);
542 pci_restore_state(pci_dev);
543 pci_pme_restore(pci_dev);
552 static void pci_pm_default_resume(struct pci_dev *pci_dev)
554 pci_fixup_device(pci_fixup_resume, pci_dev);
555 pci_enable_wake(pci_dev, PCI_D0, false);
558 static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev)
560 pci_power_up(pci_dev);
561 pci_update_current_state(pci_dev, PCI_D0);
564 static void pci_pm_default_resume_early(struct pci_dev *pci_dev)
566 pci_pm_power_up_and_verify_state(pci_dev);
567 pci_restore_state(pci_dev);
568 pci_pme_restore(pci_dev);
571 static void pci_pm_bridge_power_up_actions(struct pci_dev *pci_dev)
575 ret = pci_bridge_wait_for_secondary_bus(pci_dev, "resume");
582 pci_walk_bus(pci_dev->subordinate, pci_dev_set_disconnected,
592 pci_resume_bus(pci_dev->subordinate);
603 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev)
609 if (pci_dev->current_state == PCI_D0)
610 pci_dev->current_state = PCI_UNKNOWN;
617 static int pci_pm_reenable_device(struct pci_dev *pci_dev)
622 retval = pci_reenable_device(pci_dev);
627 if (pci_dev->is_busmaster)
628 pci_set_master(pci_dev);
635 struct pci_dev *pci_dev = to_pci_dev(dev);
636 struct pci_driver *drv = pci_dev->driver;
639 pci_power_t prev = pci_dev->current_state;
642 error = drv->suspend(pci_dev, state);
647 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
648 && pci_dev->current_state != PCI_UNKNOWN) {
649 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
655 pci_fixup_device(pci_fixup_suspend, pci_dev);
662 struct pci_dev *pci_dev = to_pci_dev(dev);
664 if (!pci_dev->state_saved)
665 pci_save_state(pci_dev);
667 pci_pm_set_unknown_state(pci_dev);
669 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
676 struct pci_dev *pci_dev = to_pci_dev(dev);
677 struct pci_driver *drv = pci_dev->driver;
679 pci_fixup_device(pci_fixup_resume, pci_dev);
682 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev);
687 static void pci_pm_default_suspend(struct pci_dev *pci_dev)
690 if (!pci_has_subordinate(pci_dev))
691 pci_disable_enabled_device(pci_dev);
694 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev)
696 struct pci_driver *drv = pci_dev->driver;
704 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n",
705 pci_dev->vendor, pci_dev->device);
714 struct pci_dev *pci_dev = to_pci_dev(dev);
725 if (pci_dev_need_resume(pci_dev))
732 pci_dev_adjust_pme(pci_dev);
738 struct pci_dev *pci_dev = to_pci_dev(dev);
740 pci_dev_complete_resume(pci_dev);
745 pci_power_t pre_sleep_state = pci_dev->current_state;
747 pci_refresh_power_state(pci_dev);
755 if (pci_dev->current_state < pre_sleep_state)
768 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev)
775 if (pci_is_pcie(pci_dev) &&
776 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT ||
777 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC))
778 pcie_clear_root_pme_status(pci_dev);
783 struct pci_dev *pci_dev = to_pci_dev(dev);
786 pci_dev->skip_bus_pm = false;
792 pci_suspend_ptm(pci_dev);
794 if (pci_has_legacy_pm_support(pci_dev))
798 pci_pm_default_suspend(pci_dev);
816 pci_dev_need_resume(pci_dev)) {
818 pci_dev->state_saved = false;
820 pci_dev_adjust_pme(pci_dev);
824 pci_power_t prev = pci_dev->current_state;
832 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
833 && pci_dev->current_state != PCI_UNKNOWN) {
834 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
855 struct pci_dev *pci_dev = to_pci_dev(dev);
861 if (pci_has_legacy_pm_support(pci_dev))
865 pci_save_state(pci_dev);
870 pci_power_t prev = pci_dev->current_state;
878 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
879 && pci_dev->current_state != PCI_UNKNOWN) {
880 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
887 if (!pci_dev->state_saved) {
888 pci_save_state(pci_dev);
895 if (!pci_dev->skip_bus_pm && pci_power_manageable(pci_dev))
896 pci_prepare_to_sleep(pci_dev);
899 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n",
900 pci_power_name(pci_dev->current_state));
902 if (pci_dev->current_state == PCI_D0) {
903 pci_dev->skip_bus_pm = true;
909 if (pci_dev->bus->self)
910 pci_dev->bus->self->skip_bus_pm = true;
913 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) {
914 pci_dbg(pci_dev, "PCI PM: Skipped\n");
918 pci_pm_set_unknown_state(pci_dev);
929 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
930 pci_write_config_word(pci_dev, PCI_COMMAND, 0);
933 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
950 struct pci_dev *pci_dev = to_pci_dev(dev);
952 pci_power_t prev_state = pci_dev->current_state;
953 bool skip_bus_pm = pci_dev->skip_bus_pm;
965 pci_pm_default_resume_early(pci_dev);
967 pci_fixup_device(pci_fixup_resume_early, pci_dev);
968 pcie_pme_root_status_cleanup(pci_dev);
971 pci_pm_bridge_power_up_actions(pci_dev);
973 if (pci_has_legacy_pm_support(pci_dev))
992 struct pci_dev *pci_dev = to_pci_dev(dev);
999 if (pci_dev->state_saved)
1000 pci_restore_standard_config(pci_dev);
1002 pci_resume_ptm(pci_dev);
1004 if (pci_has_legacy_pm_support(pci_dev))
1007 pci_pm_default_resume(pci_dev);
1013 pci_pm_reenable_device(pci_dev);
1034 struct pci_dev *pci_dev = to_pci_dev(dev);
1037 if (pci_has_legacy_pm_support(pci_dev))
1041 pci_pm_default_suspend(pci_dev);
1054 pci_dev->state_saved = false;
1070 struct pci_dev *pci_dev = to_pci_dev(dev);
1073 if (pci_has_legacy_pm_support(pci_dev))
1085 if (!pci_dev->state_saved)
1086 pci_save_state(pci_dev);
1088 pci_pm_set_unknown_state(pci_dev);
1095 struct pci_dev *pci_dev = to_pci_dev(dev);
1107 pci_pm_power_up_and_verify_state(pci_dev);
1108 pci_restore_state(pci_dev);
1110 if (pci_has_legacy_pm_support(pci_dev))
1121 struct pci_dev *pci_dev = to_pci_dev(dev);
1125 if (pci_has_legacy_pm_support(pci_dev))
1132 pci_pm_reenable_device(pci_dev);
1135 pci_dev->state_saved = false;
1142 struct pci_dev *pci_dev = to_pci_dev(dev);
1145 if (pci_has_legacy_pm_support(pci_dev))
1149 pci_pm_default_suspend(pci_dev);
1155 pci_dev_need_resume(pci_dev)) {
1157 pci_dev->state_saved = false;
1159 pci_dev_adjust_pme(pci_dev);
1186 struct pci_dev *pci_dev = to_pci_dev(dev);
1192 if (pci_has_legacy_pm_support(pci_dev))
1196 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
1209 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev))
1210 pci_prepare_to_sleep(pci_dev);
1216 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
1217 pci_write_config_word(pci_dev, PCI_COMMAND, 0);
1219 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
1226 struct pci_dev *pci_dev = to_pci_dev(dev);
1229 pci_pm_default_resume_early(pci_dev);
1230 pci_fixup_device(pci_fixup_resume_early, pci_dev);
1232 if (pci_has_legacy_pm_support(pci_dev))
1243 struct pci_dev *pci_dev = to_pci_dev(dev);
1250 if (pci_dev->state_saved)
1251 pci_restore_standard_config(pci_dev);
1253 if (pci_has_legacy_pm_support(pci_dev))
1256 pci_pm_default_resume(pci_dev);
1262 pci_pm_reenable_device(pci_dev);
1286 struct pci_dev *pci_dev = to_pci_dev(dev);
1288 pci_power_t prev = pci_dev->current_state;
1291 pci_suspend_ptm(pci_dev);
1294 * If pci_dev->driver is not set (unbound), we leave the device in D0,
1298 if (!pci_dev->driver) {
1299 pci_save_state(pci_dev);
1303 pci_dev->state_saved = false;
1312 pci_dbg(pci_dev, "can't suspend now (%ps returned %d)\n",
1316 pci_err(pci_dev, "can't suspend (%ps returned %d)\n",
1322 pci_fixup_device(pci_fixup_suspend, pci_dev);
1325 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0
1326 && pci_dev->current_state != PCI_UNKNOWN) {
1327 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
1333 if (!pci_dev->state_saved) {
1334 pci_save_state(pci_dev);
1335 pci_finish_runtime_suspend(pci_dev);
1343 struct pci_dev *pci_dev = to_pci_dev(dev);
1345 pci_power_t prev_state = pci_dev->current_state;
1353 pci_pm_default_resume_early(pci_dev);
1354 pci_resume_ptm(pci_dev);
1356 if (!pci_dev->driver)
1359 pci_fixup_device(pci_fixup_resume_early, pci_dev);
1360 pci_pm_default_resume(pci_dev);
1363 pci_pm_bridge_power_up_actions(pci_dev);
1373 struct pci_dev *pci_dev = to_pci_dev(dev);
1377 * If pci_dev->driver is not set (unbound), the device should
1380 if (!pci_dev->driver)
1482 struct pci_driver *pci_dev_driver(const struct pci_dev *dev)
1508 struct pci_dev *pci_dev = to_pci_dev(dev);
1512 if (!pci_dev->match_driver)
1516 found_id = pci_match_device(pci_drv, pci_dev);
1535 struct pci_dev *pci_dev_get(struct pci_dev *dev)
1550 void pci_dev_put(struct pci_dev *dev)
1559 const struct pci_dev *pdev;
1595 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type)