Lines Matching defs: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);
422 int __weak pcibios_alloc_irq(struct pci_dev *dev)
427 void __weak pcibios_free_irq(struct pci_dev *dev)
432 static inline bool pci_device_can_probe(struct pci_dev *pdev)
438 static inline bool pci_device_can_probe(struct pci_dev *pdev)
447 struct pci_dev *pci_dev = to_pci_dev(dev);
450 if (!pci_device_can_probe(pci_dev))
453 pci_assign_irq(pci_dev);
455 error = pcibios_alloc_irq(pci_dev);
459 pci_dev_get(pci_dev);
460 error = __pci_device_probe(drv, pci_dev);
462 pcibios_free_irq(pci_dev);
463 pci_dev_put(pci_dev);
471 struct pci_dev *pci_dev = to_pci_dev(dev);
472 struct pci_driver *drv = pci_dev->driver;
483 drv->remove(pci_dev);
486 pcibios_free_irq(pci_dev);
487 pci_dev->driver = NULL;
488 pci_iov_remove(pci_dev);
497 if (pci_dev->current_state == PCI_D0)
498 pci_dev->current_state = PCI_UNKNOWN;
501 * We would love to complain here if pci_dev->is_enabled is set, that
509 pci_dev_put(pci_dev);
514 struct pci_dev *pci_dev = to_pci_dev(dev);
515 struct pci_driver *drv = pci_dev->driver;
520 drv->shutdown(pci_dev);
529 if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot))
530 pci_clear_master(pci_dev);
539 * @pci_dev: PCI device to handle
541 static int pci_restore_standard_config(struct pci_dev *pci_dev)
543 pci_update_current_state(pci_dev, PCI_UNKNOWN);
545 if (pci_dev->current_state != PCI_D0) {
546 int error = pci_set_power_state(pci_dev, PCI_D0);
551 pci_restore_state(pci_dev);
552 pci_pme_restore(pci_dev);
561 static void pci_pm_default_resume(struct pci_dev *pci_dev)
563 pci_fixup_device(pci_fixup_resume, pci_dev);
564 pci_enable_wake(pci_dev, PCI_D0, false);
567 static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev)
569 pci_power_up(pci_dev);
570 pci_update_current_state(pci_dev, PCI_D0);
573 static void pci_pm_default_resume_early(struct pci_dev *pci_dev)
575 pci_pm_power_up_and_verify_state(pci_dev);
576 pci_restore_state(pci_dev);
577 pci_pme_restore(pci_dev);
580 static void pci_pm_bridge_power_up_actions(struct pci_dev *pci_dev)
584 ret = pci_bridge_wait_for_secondary_bus(pci_dev, "resume");
591 pci_walk_bus(pci_dev->subordinate, pci_dev_set_disconnected,
601 pci_resume_bus(pci_dev->subordinate);
612 static void pci_pm_set_unknown_state(struct pci_dev *pci_dev)
618 if (pci_dev->current_state == PCI_D0)
619 pci_dev->current_state = PCI_UNKNOWN;
626 static int pci_pm_reenable_device(struct pci_dev *pci_dev)
631 retval = pci_reenable_device(pci_dev);
636 if (pci_dev->is_busmaster)
637 pci_set_master(pci_dev);
644 struct pci_dev *pci_dev = to_pci_dev(dev);
645 struct pci_driver *drv = pci_dev->driver;
648 pci_power_t prev = pci_dev->current_state;
651 error = drv->suspend(pci_dev, state);
656 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
657 && pci_dev->current_state != PCI_UNKNOWN) {
658 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
664 pci_fixup_device(pci_fixup_suspend, pci_dev);
671 struct pci_dev *pci_dev = to_pci_dev(dev);
673 if (!pci_dev->state_saved)
674 pci_save_state(pci_dev);
676 pci_pm_set_unknown_state(pci_dev);
678 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
685 struct pci_dev *pci_dev = to_pci_dev(dev);
686 struct pci_driver *drv = pci_dev->driver;
688 pci_fixup_device(pci_fixup_resume, pci_dev);
691 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev);
696 static void pci_pm_default_suspend(struct pci_dev *pci_dev)
699 if (!pci_has_subordinate(pci_dev))
700 pci_disable_enabled_device(pci_dev);
703 static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev)
705 struct pci_driver *drv = pci_dev->driver;
713 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n",
714 pci_dev->vendor, pci_dev->device);
723 struct pci_dev *pci_dev = to_pci_dev(dev);
734 if (pci_dev_need_resume(pci_dev))
741 pci_dev_adjust_pme(pci_dev);
747 struct pci_dev *pci_dev = to_pci_dev(dev);
749 pci_dev_complete_resume(pci_dev);
754 pci_power_t pre_sleep_state = pci_dev->current_state;
756 pci_refresh_power_state(pci_dev);
764 if (pci_dev->current_state < pre_sleep_state)
777 static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev)
784 if (pci_is_pcie(pci_dev) &&
785 (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT ||
786 pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC))
787 pcie_clear_root_pme_status(pci_dev);
792 struct pci_dev *pci_dev = to_pci_dev(dev);
795 pci_dev->skip_bus_pm = false;
801 pci_suspend_ptm(pci_dev);
803 if (pci_has_legacy_pm_support(pci_dev))
807 pci_pm_default_suspend(pci_dev);
825 pci_dev_need_resume(pci_dev)) {
827 pci_dev->state_saved = false;
829 pci_dev_adjust_pme(pci_dev);
833 pci_power_t prev = pci_dev->current_state;
841 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
842 && pci_dev->current_state != PCI_UNKNOWN) {
843 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
864 struct pci_dev *pci_dev = to_pci_dev(dev);
870 if (pci_has_legacy_pm_support(pci_dev))
874 pci_save_state(pci_dev);
879 pci_power_t prev = pci_dev->current_state;
887 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
888 && pci_dev->current_state != PCI_UNKNOWN) {
889 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
896 if (!pci_dev->state_saved) {
897 pci_save_state(pci_dev);
904 if (!pci_dev->skip_bus_pm && pci_power_manageable(pci_dev))
905 pci_prepare_to_sleep(pci_dev);
908 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n",
909 pci_power_name(pci_dev->current_state));
911 if (pci_dev->current_state == PCI_D0) {
912 pci_dev->skip_bus_pm = true;
918 if (pci_dev->bus->self)
919 pci_dev->bus->self->skip_bus_pm = true;
922 if (pci_dev->skip_bus_pm && pm_suspend_no_platform()) {
923 pci_dbg(pci_dev, "PCI PM: Skipped\n");
927 pci_pm_set_unknown_state(pci_dev);
938 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
939 pci_write_config_word(pci_dev, PCI_COMMAND, 0);
942 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
959 struct pci_dev *pci_dev = to_pci_dev(dev);
961 pci_power_t prev_state = pci_dev->current_state;
962 bool skip_bus_pm = pci_dev->skip_bus_pm;
974 pci_pm_default_resume_early(pci_dev);
976 pci_fixup_device(pci_fixup_resume_early, pci_dev);
977 pcie_pme_root_status_cleanup(pci_dev);
980 pci_pm_bridge_power_up_actions(pci_dev);
982 if (pci_has_legacy_pm_support(pci_dev))
1001 struct pci_dev *pci_dev = to_pci_dev(dev);
1008 if (pci_dev->state_saved)
1009 pci_restore_standard_config(pci_dev);
1011 pci_resume_ptm(pci_dev);
1013 if (pci_has_legacy_pm_support(pci_dev))
1016 pci_pm_default_resume(pci_dev);
1022 pci_pm_reenable_device(pci_dev);
1043 struct pci_dev *pci_dev = to_pci_dev(dev);
1046 if (pci_has_legacy_pm_support(pci_dev))
1050 pci_pm_default_suspend(pci_dev);
1063 pci_dev->state_saved = false;
1079 struct pci_dev *pci_dev = to_pci_dev(dev);
1082 if (pci_has_legacy_pm_support(pci_dev))
1094 if (!pci_dev->state_saved)
1095 pci_save_state(pci_dev);
1097 pci_pm_set_unknown_state(pci_dev);
1104 struct pci_dev *pci_dev = to_pci_dev(dev);
1116 pci_pm_power_up_and_verify_state(pci_dev);
1117 pci_restore_state(pci_dev);
1119 if (pci_has_legacy_pm_support(pci_dev))
1130 struct pci_dev *pci_dev = to_pci_dev(dev);
1134 if (pci_has_legacy_pm_support(pci_dev))
1141 pci_pm_reenable_device(pci_dev);
1144 pci_dev->state_saved = false;
1151 struct pci_dev *pci_dev = to_pci_dev(dev);
1154 if (pci_has_legacy_pm_support(pci_dev))
1158 pci_pm_default_suspend(pci_dev);
1164 pci_dev_need_resume(pci_dev)) {
1166 pci_dev->state_saved = false;
1168 pci_dev_adjust_pme(pci_dev);
1195 struct pci_dev *pci_dev = to_pci_dev(dev);
1201 if (pci_has_legacy_pm_support(pci_dev))
1205 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
1218 if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev))
1219 pci_prepare_to_sleep(pci_dev);
1225 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
1226 pci_write_config_word(pci_dev, PCI_COMMAND, 0);
1228 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
1235 struct pci_dev *pci_dev = to_pci_dev(dev);
1238 pci_pm_default_resume_early(pci_dev);
1239 pci_fixup_device(pci_fixup_resume_early, pci_dev);
1241 if (pci_has_legacy_pm_support(pci_dev))
1252 struct pci_dev *pci_dev = to_pci_dev(dev);
1259 if (pci_dev->state_saved)
1260 pci_restore_standard_config(pci_dev);
1262 if (pci_has_legacy_pm_support(pci_dev))
1265 pci_pm_default_resume(pci_dev);
1271 pci_pm_reenable_device(pci_dev);
1295 struct pci_dev *pci_dev = to_pci_dev(dev);
1297 pci_power_t prev = pci_dev->current_state;
1300 pci_suspend_ptm(pci_dev);
1303 * If pci_dev->driver is not set (unbound), we leave the device in D0,
1307 if (!pci_dev->driver) {
1308 pci_save_state(pci_dev);
1312 pci_dev->state_saved = false;
1321 pci_dbg(pci_dev, "can't suspend now (%ps returned %d)\n",
1325 pci_err(pci_dev, "can't suspend (%ps returned %d)\n",
1331 pci_fixup_device(pci_fixup_suspend, pci_dev);
1334 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0
1335 && pci_dev->current_state != PCI_UNKNOWN) {
1336 pci_WARN_ONCE(pci_dev, pci_dev->current_state != prev,
1342 if (!pci_dev->state_saved) {
1343 pci_save_state(pci_dev);
1344 pci_finish_runtime_suspend(pci_dev);
1352 struct pci_dev *pci_dev = to_pci_dev(dev);
1354 pci_power_t prev_state = pci_dev->current_state;
1362 pci_pm_default_resume_early(pci_dev);
1363 pci_resume_ptm(pci_dev);
1365 if (!pci_dev->driver)
1368 pci_fixup_device(pci_fixup_resume_early, pci_dev);
1369 pci_pm_default_resume(pci_dev);
1372 pci_pm_bridge_power_up_actions(pci_dev);
1382 struct pci_dev *pci_dev = to_pci_dev(dev);
1386 * If pci_dev->driver is not set (unbound), the device should
1389 if (!pci_dev->driver)
1494 struct pci_driver *pci_dev_driver(const struct pci_dev *dev)
1520 struct pci_dev *pci_dev = to_pci_dev(dev);
1524 if (!pci_dev->match_driver)
1528 found_id = pci_match_device(pci_drv, pci_dev);
1547 struct pci_dev *pci_dev_get(struct pci_dev *dev)
1562 void pci_dev_put(struct pci_dev *dev)
1571 const struct pci_dev *pdev;
1607 void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type)