Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: layerscape: Factor out ls_pcie_establish_link()

All other DesignWare-based drivers have a *_establish_link() function.

This functionality is trivial for Layerscape, but factor out a
ls_pcie_establish_link() for consistency with the other drivers. No
functional change.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Pratyush Anand <pratyush.anand@gmail.com>

+13 -6
+13 -6
drivers/pci/host/pci-layerscape.c
··· 62 62 return 1; 63 63 } 64 64 65 - static void ls_pcie_host_init(struct pcie_port *pp) 65 + static int ls_pcie_establish_link(struct pcie_port *pp) 66 66 { 67 - struct ls_pcie *pcie = to_ls_pcie(pp); 68 67 int count = 0; 69 - u32 val; 70 - 71 - dw_pcie_setup_rc(pp); 72 68 73 69 while (!dw_pcie_link_up(pp)) { 74 70 usleep_range(100, 1000); 75 71 count++; 76 72 if (count >= 200) { 77 73 dev_err(pp->dev, "phy link never came up\n"); 78 - return; 74 + return -EINVAL; 79 75 } 80 76 } 77 + 78 + return 0; 79 + } 80 + 81 + static void ls_pcie_host_init(struct pcie_port *pp) 82 + { 83 + struct ls_pcie *pcie = to_ls_pcie(pp); 84 + u32 val; 85 + 86 + dw_pcie_setup_rc(pp); 87 + ls_pcie_establish_link(pp); 81 88 82 89 /* 83 90 * LS1021A Workaround for internal TKT228622