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: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Lorenzo Bianconi 2021-04-18 18:45:39 +02:00 committed by Felix Fietkau
parent 1d4f5c68a0
commit a61826203b
3 changed files with 8 additions and 8 deletions

View File

@ -1931,6 +1931,10 @@ void mt7615_pm_power_save_work(struct work_struct *work)
pm.ps_work.work); pm.ps_work.work);
delta = dev->pm.idle_timeout; 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)) { if (time_is_after_jiffies(dev->pm.last_activity + delta)) {
delta = dev->pm.last_activity + delta - jiffies; delta = dev->pm.last_activity + delta - jiffies;
goto out; goto out;

View File

@ -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)) if (!test_bit(MT76_STATE_PM, &phy->state))
return 0; 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)) if (queue_work(dev->wq, &pm->wake_work))
reinit_completion(&pm->wake_cmpl); reinit_completion(&pm->wake_cmpl);
@ -46,10 +42,6 @@ void mt76_connac_power_save_sched(struct mt76_phy *phy,
pm->last_activity = jiffies; 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)) if (!test_bit(MT76_STATE_PM, &phy->state))
queue_delayed_work(dev->wq, &pm->ps_work, pm->idle_timeout); queue_delayed_work(dev->wq, &pm->ps_work, pm->idle_timeout);
} }

View File

@ -1542,6 +1542,10 @@ void mt7921_pm_power_save_work(struct work_struct *work)
pm.ps_work.work); pm.ps_work.work);
delta = dev->pm.idle_timeout; 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)) { if (time_is_after_jiffies(dev->pm.last_activity + delta)) {
delta = dev->pm.last_activity + delta - jiffies; delta = dev->pm.last_activity + delta - jiffies;
goto out; goto out;