PCI: aardvark: Fix checking for link up via LTSSM state
authorPali Rohár <pali@kernel.org>
Tue, 5 Oct 2021 18:09:51 +0000 (20:09 +0200)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 7 Oct 2021 13:27:59 +0000 (14:27 +0100)
commit661c399a651c11aaf83c45cbfe0b4a1fb7bc3179
treefb32905ed3bd3ec340f8489746cbbb013dec99ad
parentf76b36d40beee0a13aa8f6aa011df0d7cbbb8a7f
PCI: aardvark: Fix checking for link up via LTSSM state

Current implementation of advk_pcie_link_up() is wrong as it marks also
link disabled or hot reset states as link up.

Fix it by marking link up only to those states which are defined in PCIe
Base specification 3.0, Table 4-14: Link Status Mapped to the LTSSM.

To simplify implementation, Define macros for every LTSSM state which
aardvark hardware can return in CFG_REG register.

Fix also checking for link training according to the same Table 4-14.
Define a new function advk_pcie_link_training() for this purpose.

Link: https://lore.kernel.org/r/20211005180952.6812-13-kabel@kernel.org
Fixes: 8c39d710363c ("PCI: aardvark: Add Aardvark PCI host controller driver")
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Marek Behún <kabel@kernel.org>
Cc: stable@vger.kernel.org
Cc: Remi Pommarel <repk@triplefau.lt>
drivers/pci/controller/pci-aardvark.c