QCA6174 seemingly randomly fails to wake

Michal Kazior michal.kazior at tieto.com
Tue Nov 3 23:30:10 PST 2015


On 4 November 2015 at 01:00,  <theros at openmailbox.org> wrote:
> Hello,
>
> I am having issues with the ath10k driver and the Qualcomm Atheros QCA6174
> network adapter. Seemingly randomly, the wireless connection on my laptop
> stops working. dmesg outputs a long series of:
>
> [11061.645929] ath10k_pci 0000:07:00.0: failed to wake target for write32 of
> 0x0000025c at 0x0003543c: -110

This looks very similar to how QCA99X0 failed when PCI PS was enabled
for the card:

  http://lists.infradead.org/pipermail/ath10k/2015-September/005939.html

As far as I know the reason of failure is not really understood and it
simply was disabled to fix reliability.

It seems that QCA6174 suffers from this as well - at least on your
platform. This is rather sad as we'll probably need to disable it by
default for QCA6174 now as well which will increase power consumption
a little bit.


> Rarely a reboot fixes this and I can use the network adapter again, but more
> often than not, after a reboot, there is no output related to ath10k in
> dmesg and the laptop is behaving as if the network adapter is not present.
> The adapter eventually starts working again - I have not noticed a specific
> pattern, sometimes it is after a few hours, sometimes I couldn't get it
> working for days.
>
> I have tried thoroughly searching online but was unable to find anything
> that would be of help. I do admit I am a little out of my depth here, but I
> will happily provide any further information necessary in order to diagnose
> and fix this.
>
> I am on Xubuntu 15.10, kernel 4.2.0-16-generic.

Can you perhaps try compiling the kernel from:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git

with the following diff applied:

diff --git a/drivers/net/wireless/ath/ath10k/pci.c
b/drivers/net/wireless/ath/ath10k/pci.c
index 3fca200b986c..edf7a7637d88 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -2968,7 +2968,7 @@ static int ath10k_pci_probe(struct pci_dev *pdev,
        case QCA6164_2_1_DEVICE_ID:
        case QCA6174_2_1_DEVICE_ID:
                hw_rev = ATH10K_HW_QCA6174;
-               pci_ps = true;
+               pci_ps = false;
                break;
        case QCA99X0_2_0_DEVICE_ID:
                hw_rev = ATH10K_HW_QCA99X0;

and report back if this fixes the problem for you, please?


Michał



More information about the ath10k mailing list