850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. From 1d3e170344dff2cef8827db6c09909b78cbc11d7 Mon Sep 17 00:00:00 2001
  2. From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]>
  3. Date: Tue, 30 Nov 2021 18:29:05 +0100
  4. Subject: [PATCH] PCI: aardvark: Add support for DEVCAP2, DEVCTL2, LNKCAP2 and
  5. LNKCTL2 registers on emulated bridge
  6. MIME-Version: 1.0
  7. Content-Type: text/plain; charset=UTF-8
  8. Content-Transfer-Encoding: 8bit
  9. PCI aardvark hardware supports access to DEVCAP2, DEVCTL2, LNKCAP2 and
  10. LNKCTL2 configuration registers of PCIe core via PCIE_CORE_PCIEXP_CAP.
  11. Export them via emulated software root bridge.
  12. Link: https://lore.kernel.org/r/[email protected]
  13. Signed-off-by: Pali Rohár <[email protected]>
  14. Signed-off-by: Marek Behún <[email protected]>
  15. Signed-off-by: Lorenzo Pieralisi <[email protected]>
  16. ---
  17. drivers/pci/controller/pci-aardvark.c | 15 +++++++++++----
  18. 1 file changed, 11 insertions(+), 4 deletions(-)
  19. --- a/drivers/pci/controller/pci-aardvark.c
  20. +++ b/drivers/pci/controller/pci-aardvark.c
  21. @@ -883,8 +883,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
  22. case PCI_EXP_DEVCAP:
  23. case PCI_EXP_DEVCTL:
  24. + case PCI_EXP_DEVCAP2:
  25. + case PCI_EXP_DEVCTL2:
  26. + case PCI_EXP_LNKCAP2:
  27. + case PCI_EXP_LNKCTL2:
  28. *value = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg);
  29. return PCI_BRIDGE_EMUL_HANDLED;
  30. +
  31. default:
  32. return PCI_BRIDGE_EMUL_NOT_HANDLED;
  33. }
  34. @@ -898,10 +903,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
  35. struct advk_pcie *pcie = bridge->data;
  36. switch (reg) {
  37. - case PCI_EXP_DEVCTL:
  38. - advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
  39. - break;
  40. -
  41. case PCI_EXP_LNKCTL:
  42. advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
  43. if (new & PCI_EXP_LNKCTL_RL)
  44. @@ -923,6 +924,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
  45. advk_writel(pcie, new, PCIE_ISR0_REG);
  46. break;
  47. + case PCI_EXP_DEVCTL:
  48. + case PCI_EXP_DEVCTL2:
  49. + case PCI_EXP_LNKCTL2:
  50. + advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
  51. + break;
  52. +
  53. default:
  54. break;
  55. }