qoriq_dw_pci: Fix typo in link status checking code

On some DesignWare PCIe controllers accessing config registers of slots
whose link is down triggers a SError. Because of that we need to check the
link status before any acceses config space.
Due to a typo link was always reported up.
This fixes a SError that occured during boot on LS1028A-RDB.

Obtained from:		Semihalf
Reviewed by:		wma
Differential revision:	https://reviews.freebsd.org/D31509
This commit is contained in:
Bartlomiej Grzesik 2021-08-31 06:22:33 +02:00 committed by Wojciech Macek
parent 315bca194a
commit df9c0e88e1

View file

@ -101,13 +101,7 @@ static struct qoriq_dw_pci_cfg ls2028_cfg = {
/* Compatible devices. */
static struct ofw_compat_data compat_data[] = {
{"fsl,ls1012a-pcie", (uintptr_t)&ls1012_cfg},
/*
* XXX: On LS1028ARDB attaching this driver causes external abort.
* Disable it for now.
*/
#ifdef notyet
{"fsl,ls1028a-pcie", (uintptr_t)&ls2028_cfg},
#endif
{"fsl,ls1043a-pcie", (uintptr_t)&ls1043_cfg},
{"fsl,ls1046a-pcie", (uintptr_t)&ls1012_cfg},
{"fsl,ls2080a-pcie", (uintptr_t)&ls2080_cfg},
@ -156,7 +150,7 @@ qorif_dw_pci_get_link(device_t dev, bool *status)
reg = pci_dw_dbi_rd4(sc->dev, sc->soc_cfg->pex_pf0_dgb);
reg >>= sc->soc_cfg->ltssm_bit;
reg &= 0x3F;
*status = (reg = 0x11) ? true: false;
*status = (reg == 0x11) ? true : false;
return (0);
}