OSDN Git Service

wifi: mt76: mt7921: reduce polling time in pmctrl
authorDeren Wu <deren.wu@mediatek.com>
Sat, 14 Jan 2023 04:56:47 +0000 (12:56 +0800)
committerFelix Fietkau <nbd@nbd.name>
Fri, 3 Feb 2023 13:47:17 +0000 (14:47 +0100)
Due to the polling tick is 10ms, the wake up flow in the status waiting
would cause more 10~20ms than the real HW response time. Reduce
tick-interval from 10ms to 1ms to get better network performance, such
as ping latency, in low power mode.

Reviewed-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c

index 0e7ea35..1aefbb6 100644 (file)
@@ -68,8 +68,8 @@ int __mt7921e_mcu_drv_pmctrl(struct mt7921_dev *dev)
 
        for (i = 0; i < MT7921_DRV_OWN_RETRY_COUNT; i++) {
                mt76_wr(dev, MT_CONN_ON_LPCTL, PCIE_LPCR_HOST_CLR_OWN);
-               if (mt76_poll_msec(dev, MT_CONN_ON_LPCTL,
-                                  PCIE_LPCR_HOST_OWN_SYNC, 0, 50))
+               if (mt76_poll_msec_tick(dev, MT_CONN_ON_LPCTL,
+                                       PCIE_LPCR_HOST_OWN_SYNC, 0, 50, 1))
                        break;
        }
 
@@ -109,8 +109,8 @@ int mt7921e_mcu_fw_pmctrl(struct mt7921_dev *dev)
 
        for (i = 0; i < MT7921_DRV_OWN_RETRY_COUNT; i++) {
                mt76_wr(dev, MT_CONN_ON_LPCTL, PCIE_LPCR_HOST_SET_OWN);
-               if (mt76_poll_msec(dev, MT_CONN_ON_LPCTL,
-                                  PCIE_LPCR_HOST_OWN_SYNC, 4, 50))
+               if (mt76_poll_msec_tick(dev, MT_CONN_ON_LPCTL,
+                                       PCIE_LPCR_HOST_OWN_SYNC, 4, 50, 1))
                        break;
        }