ath10k + INTEL_IDLE aka. cstates == firmware crash

Michal Kazior michal.kazior at tieto.com
Mon Mar 2 04:20:08 PST 2015


On 23 February 2015 at 15:41, Fabian Wittenberg
<Fabian.Wittenberg at sophos.com> wrote:
> Hi Michal,
>
> I already did this approach. This works fine and is the current
> workaround to get the product out, but I would like to know what the
> basic problem is.
> The power consumption increases by ~1.25W on idle devices if you disable
> cstates. This is not a real problem but a low mem corruption is one.
> So I assume a bug in the ath10k-driver/firmware.

Hi Fabian,

Can you try the following diff with _INTEL_IDLE=y, please?

--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -2531,6 +2531,11 @@ static int ath10k_pci_claim(struct ath10k *ar)

        pci_set_master(pdev);

+       /* Disable RETRY_TIMEOUT register to prevent PCI Tx retries from
+        * interfering with C3 CPU state.
+        */
+       pci_write_config_byte(pdev, 0x41, 0);
+
        /* Workaround: Disable ASPM */
        pci_read_config_dword(pdev, 0x80, &lcr_val);
        pci_write_config_dword(pdev, 0x80, (lcr_val & 0xffffff00));


Michał



More information about the ath10k mailing list