eswin_pcie_link_up() is the .link_up callback, so it is called on every link state poll. Replace the dw_pcie_find_capability() call with dw_pcie_get_pcie_cap() so that the capability list is walked only once, and store the offset in a u8 as everywhere else.
Signed-off-by: Hans Zhang <[email protected]> --- drivers/pci/controller/dwc/pcie-eswin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-eswin.c b/drivers/pci/controller/dwc/pcie-eswin.c index ce8d64f8a395..3d3275237f3f 100644 --- a/drivers/pci/controller/dwc/pcie-eswin.c +++ b/drivers/pci/controller/dwc/pcie-eswin.c @@ -84,7 +84,7 @@ static int eswin_pcie_start_link(struct dw_pcie *pci) static bool eswin_pcie_link_up(struct dw_pcie *pci) { - u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); + u8 offset = dw_pcie_get_pcie_cap(pci); u16 val = dw_pcie_readw_dbi(pci, offset + PCI_EXP_LNKSTA); return val & PCI_EXP_LNKSTA_DLLLA; -- 2.43.0
