pciexp: Move PCI path check one level up to pciexp_enable_ltr()
If we have a PCIe root port without `ops_pci` or without `get_ltr_max_latencies`, the parent device wouldn't be PCI. Hence, check for a PCI path early. Change-Id: I358cb6756750bb10d0a23ab7133b917bfa25988b Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/66845 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Jonathan Zhang <jonzhang@fb.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
parent
39564922a5
commit
49fc4e3e43
|
@ -211,8 +211,7 @@ static bool _pciexp_enable_ltr(struct device *parent, unsigned int parent_cap,
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (parent &&
|
if (parent &&
|
||||||
(parent->path.type != DEVICE_PATH_PCI ||
|
(!_pciexp_ltr_supported(parent, parent_cap) ||
|
||||||
!_pciexp_ltr_supported(parent, parent_cap) ||
|
|
||||||
!_pciexp_ltr_enabled(parent, parent_cap)))
|
!_pciexp_ltr_enabled(parent, parent_cap)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -235,6 +234,8 @@ static void pciexp_enable_ltr(struct device *dev)
|
||||||
unsigned int parent_cap = 0;
|
unsigned int parent_cap = 0;
|
||||||
if (!dev->ops->ops_pci || !dev->ops->ops_pci->get_ltr_max_latencies) {
|
if (!dev->ops->ops_pci || !dev->ops->ops_pci->get_ltr_max_latencies) {
|
||||||
parent = dev->bus->dev;
|
parent = dev->bus->dev;
|
||||||
|
if (parent->path.type != DEVICE_PATH_PCI)
|
||||||
|
return;
|
||||||
parent_cap = pci_find_capability(parent, PCI_CAP_ID_PCIE);
|
parent_cap = pci_find_capability(parent, PCI_CAP_ID_PCIE);
|
||||||
if (!parent_cap)
|
if (!parent_cap)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue