Commit e3fd9934 authored by Deren Wu's avatar Deren Wu Committed by Felix Fietkau
Browse files

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: default avatarDeren Wu <deren.wu@mediatek.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 3cce2b98
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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);
}