Commit eff31f40 authored by Ley Foon Tan's avatar Ley Foon Tan Committed by Bjorn Helgaas

PCI: altera: Fix altera_pcie_link_is_up()

Originally altera_pcie_link_is_up() decided the link was up if any of the
low four bits of the LTSSM register were set.  But the link is only up if
the LTSSM state is L0, so check for that exact value.

[bhelgaas: changelog]
Signed-off-by: default avatarLey Foon Tan <lftan@altera.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 92e963f5
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#define P2A_INT_ENABLE 0x3070 #define P2A_INT_ENABLE 0x3070
#define P2A_INT_ENA_ALL 0xf #define P2A_INT_ENA_ALL 0xf
#define RP_LTSSM 0x3c64 #define RP_LTSSM 0x3c64
#define RP_LTSSM_MASK 0x1f
#define LTSSM_L0 0xf #define LTSSM_L0 0xf
/* TLP configuration type 0 and 1 */ /* TLP configuration type 0 and 1 */
...@@ -140,7 +141,7 @@ static void tlp_write_tx(struct altera_pcie *pcie, ...@@ -140,7 +141,7 @@ static void tlp_write_tx(struct altera_pcie *pcie,
static bool altera_pcie_link_is_up(struct altera_pcie *pcie) static bool altera_pcie_link_is_up(struct altera_pcie *pcie)
{ {
return !!(cra_readl(pcie, RP_LTSSM) & LTSSM_L0); return !!((cra_readl(pcie, RP_LTSSM) & RP_LTSSM_MASK) == LTSSM_L0);
} }
static bool altera_pcie_valid_config(struct altera_pcie *pcie, static bool altera_pcie_valid_config(struct altera_pcie *pcie,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment