Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acc886ec authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'pci/pm' into next

* pci/pm:
  PCI: Freeze PME scan before suspending devices
  PCI/PM: Don't sleep at all when d3_delay or d3cold_delay is zero
parents c6a7a77c ea00353f
Loading
Loading
Loading
Loading
+9 −6
Original line number Original line Diff line number Diff line
@@ -66,6 +66,7 @@ static void pci_dev_d3_sleep(struct pci_dev *dev)
	if (delay < pci_pm_d3_delay)
	if (delay < pci_pm_d3_delay)
		delay = pci_pm_d3_delay;
		delay = pci_pm_d3_delay;


	if (delay)
		msleep(delay);
		msleep(delay);
}
}


@@ -827,6 +828,7 @@ static void __pci_start_power_transition(struct pci_dev *dev, pci_power_t state)
		 * because have already delayed for the bridge.
		 * because have already delayed for the bridge.
		 */
		 */
		if (dev->runtime_d3cold) {
		if (dev->runtime_d3cold) {
			if (dev->d3cold_delay)
				msleep(dev->d3cold_delay);
				msleep(dev->d3cold_delay);
			/*
			/*
			 * When powering on a bridge from D3cold, the
			 * When powering on a bridge from D3cold, the
@@ -1782,7 +1784,7 @@ static void pci_pme_list_scan(struct work_struct *work)
		}
		}
	}
	}
	if (!list_empty(&pci_pme_list))
	if (!list_empty(&pci_pme_list))
		schedule_delayed_work(&pci_pme_work,
		queue_delayed_work(system_freezable_wq, &pci_pme_work,
				   msecs_to_jiffies(PME_TIMEOUT));
				   msecs_to_jiffies(PME_TIMEOUT));
	mutex_unlock(&pci_pme_list_mutex);
	mutex_unlock(&pci_pme_list_mutex);
}
}
@@ -1848,7 +1850,8 @@ void pci_pme_active(struct pci_dev *dev, bool enable)
			mutex_lock(&pci_pme_list_mutex);
			mutex_lock(&pci_pme_list_mutex);
			list_add(&pme_dev->list, &pci_pme_list);
			list_add(&pme_dev->list, &pci_pme_list);
			if (list_is_singular(&pci_pme_list))
			if (list_is_singular(&pci_pme_list))
				schedule_delayed_work(&pci_pme_work,
				queue_delayed_work(system_freezable_wq,
						   &pci_pme_work,
						   msecs_to_jiffies(PME_TIMEOUT));
						   msecs_to_jiffies(PME_TIMEOUT));
			mutex_unlock(&pci_pme_list_mutex);
			mutex_unlock(&pci_pme_list_mutex);
		} else {
		} else {