Commit a6182620 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau
Browse files

mt76: connac: alaways wake the device before scanning



move scanning check from mt76_connac_power_save_sched routine
to mt7921_pm_power_save_work/mt7615_pm_power_save_work ones

Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 1d4f5c68
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1931,6 +1931,10 @@ void mt7615_pm_power_save_work(struct work_struct *work)
						pm.ps_work.work);

	delta = dev->pm.idle_timeout;
	if (test_bit(MT76_HW_SCANNING, &dev->mphy.state) ||
	    test_bit(MT76_HW_SCHED_SCANNING, &dev->mphy.state))
		goto out;

	if (time_is_after_jiffies(dev->pm.last_activity + delta)) {
		delta = dev->pm.last_activity + delta - jiffies;
		goto out;
+0 −8
Original line number Diff line number Diff line
@@ -17,10 +17,6 @@ int mt76_connac_pm_wake(struct mt76_phy *phy, struct mt76_connac_pm *pm)
	if (!test_bit(MT76_STATE_PM, &phy->state))
		return 0;

	if (test_bit(MT76_HW_SCANNING, &phy->state) ||
	    test_bit(MT76_HW_SCHED_SCANNING, &phy->state))
		return 0;

	if (queue_work(dev->wq, &pm->wake_work))
		reinit_completion(&pm->wake_cmpl);

@@ -46,10 +42,6 @@ void mt76_connac_power_save_sched(struct mt76_phy *phy,

	pm->last_activity = jiffies;

	if (test_bit(MT76_HW_SCANNING, &phy->state) ||
	    test_bit(MT76_HW_SCHED_SCANNING, &phy->state))
		return;

	if (!test_bit(MT76_STATE_PM, &phy->state))
		queue_delayed_work(dev->wq, &pm->ps_work, pm->idle_timeout);
}
+4 −0
Original line number Diff line number Diff line
@@ -1542,6 +1542,10 @@ void mt7921_pm_power_save_work(struct work_struct *work)
						pm.ps_work.work);

	delta = dev->pm.idle_timeout;
	if (test_bit(MT76_HW_SCANNING, &dev->mphy.state) ||
	    test_bit(MT76_HW_SCHED_SCANNING, &dev->mphy.state))
		goto out;

	if (time_is_after_jiffies(dev->pm.last_activity + delta)) {
		delta = dev->pm.last_activity + delta - jiffies;
		goto out;