mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 21:36:52 +00:00
mt76: mt7921: update statistic in active mode only
wakeup chip every 250ms may cause huge power consumption try to update statistic counter only if in active status only, and it would lead fewer power cost Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
+7
-3
@@ -1483,13 +1483,15 @@ void mt7921_pm_power_save_work(struct work_struct *work)
|
||||
{
|
||||
struct mt7921_dev *dev;
|
||||
unsigned long delta;
|
||||
struct mt76_phy *mphy;
|
||||
|
||||
dev = (struct mt7921_dev *)container_of(work, struct mt7921_dev,
|
||||
pm.ps_work.work);
|
||||
mphy = dev->phy.mt76;
|
||||
|
||||
delta = dev->pm.idle_timeout;
|
||||
if (test_bit(MT76_HW_SCANNING, &dev->mphy.state) ||
|
||||
test_bit(MT76_HW_SCHED_SCANNING, &dev->mphy.state))
|
||||
if (test_bit(MT76_HW_SCANNING, &mphy->state) ||
|
||||
test_bit(MT76_HW_SCHED_SCANNING, &mphy->state))
|
||||
goto out;
|
||||
|
||||
if (time_is_after_jiffies(dev->pm.last_activity + delta)) {
|
||||
@@ -1497,8 +1499,10 @@ void mt7921_pm_power_save_work(struct work_struct *work)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!mt7921_mcu_fw_pmctrl(dev))
|
||||
if (!mt7921_mcu_fw_pmctrl(dev)) {
|
||||
cancel_delayed_work_sync(&mphy->mac_work);
|
||||
return;
|
||||
}
|
||||
out:
|
||||
queue_delayed_work(dev->mt76.wq, &dev->pm.ps_work, delta);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user