• Michal Kazior's avatar
    ath10k: enable pci soc powersaving · 77258d40
    Michal Kazior authored
    By using SOC_WAKE register it is possible to bring
    down power consumption of QCA61X4 from 36mA to
    16mA when associated and idle.
    
    Currently the sleep threshold/grace period is at a
    very conservative value of 60ms.
    
    Contrary to QCA61X4 the QCA988X firmware doesn't
    have Rx/beacon filtering available for client mode
    and SWBA events are used for beaconing in AP/IBSS
    so the SoC needs to be woken up at least every
    ~100ms in most cases. This means that QCA988X
    is at a disadvantage and the power consumption
    won't drop as much as for QCA61X4.
    
    Due to putting irq-safe spinlocks on every MMIO
    read/write it is expected this can cause a little
    performance regression on some systems. I haven't
    done any thorough measurements but some of my
    tests don't show any extreme degradation.
    
    The patch removes some explicit pci_wake calls
    that were added in 320e14b8db51aa ("ath10k: fix
    some pci wake/sleep issues"). This is safe because
    all MMIO accesses are now wrapped and the device
    is woken up automatically if necessary.
    Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    77258d40
pci.c 71.5 KB