Pali Rohár <[email protected]> writes: > Atheros QCA9880 and QCA9890 chips do not behave after a bus reset and also > after retrain link when PCIe bridge is not in GEN1 mode at 2.5 GT/s speed. > The device will throw a Link Down error and config space is not accessible > again. Retrain link can be called only when using GEN1 PCIe bridge or when > PCIe bridge has forced link speed to 2.5 GT/s via PCI_EXP_LNKCTL2 register. > > This issue was reproduced with more Compex WLE900VX cards (QCA9880 based) > on Armada 385 with pci-mvebu.c driver and also on Armada 3720 with > pci-aardvark.c driver. Also this issue was reproduced with some "noname" > card with QCA9890 WiFi chip on Armada 3720. All problematic cards with > these QCA chips have PCI device id 0x003c. > > Tests showed that other WiFi cards based on AR93xx (PCI device id 0x0030) > and AR9287 (PCI device id 0x002e) chips do not have these problems. > > To workaround this issue, this change introduces a new PCI quirk called > PCI_DEV_FLAGS_NO_RETRAIN_LINK_WHEN_NOT_GEN1 for PCI device id 0x003c. > > When this quirk is set then kernel disallows triggering PCI_EXP_LNKCTL_RL > bit in config space of PCIe Bridge in case PCIe Bridge is capable of higher > speed than 2.5 GT/s and higher speed is already allowed. When PCIe Bridge > has accessible LNKCTL2 register then kernel tries to force target link > speed via PCI_EXP_LNKCTL2_TLS* bits to 2.5 GT/s. After this change it is > possible to trigger PCI_EXP_LNKCTL_RL bit without causing issues on > problematic Atheros QCA98xx cards. > > Currently only PCIe ASPM kernel code triggers this PCI_EXP_LNKCTL_RL bit, > so quirk check is added only into pcie/aspm.c file. > > Signed-off-by: Pali Rohár <[email protected]> > Reported-by: Toke Høiland-Jørgensen <[email protected]> > Tested-by: Marek Behún <[email protected]> > Link: https://lore.kernel.org/linux-pci/[email protected]/ > Cc: [email protected] # c80851f6ce63a ("PCI: Add > PCI_EXP_LNKCTL2_TLS* macros")
Thanks! Tested-by: Toke Høiland-Jørgensen <[email protected]> _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
