Skip to content

Commit d7ae671

Browse files
committed
PCI: dwc: ep: Consolidate devicetree handling in dw_pcie_ep_get_resources()
Consolidate devicetree resource handling in dw_pcie_ep_get_resources(). No functional change intended. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Frank Li <[email protected]>
1 parent 92eb132 commit d7ae671

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

drivers/pci/controller/dwc/pcie-designware-ep.c

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -883,6 +883,34 @@ void dw_pcie_ep_linkdown(struct dw_pcie_ep *ep)
883883
}
884884
EXPORT_SYMBOL_GPL(dw_pcie_ep_linkdown);
885885

886+
static int dw_pcie_ep_get_resources(struct dw_pcie_ep *ep)
887+
{
888+
struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
889+
struct device *dev = pci->dev;
890+
struct platform_device *pdev = to_platform_device(dev);
891+
struct device_node *np = dev->of_node;
892+
struct pci_epc *epc = ep->epc;
893+
struct resource *res;
894+
int ret;
895+
896+
ret = dw_pcie_get_resources(pci);
897+
if (ret)
898+
return ret;
899+
900+
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "addr_space");
901+
if (!res)
902+
return -EINVAL;
903+
904+
ep->phys_base = res->start;
905+
ep->addr_size = resource_size(res);
906+
907+
ret = of_property_read_u8(np, "max-functions", &epc->max_functions);
908+
if (ret < 0)
909+
epc->max_functions = 1;
910+
911+
return 0;
912+
}
913+
886914
/**
887915
* dw_pcie_ep_init - Initialize the endpoint device
888916
* @ep: DWC EP device
@@ -895,12 +923,9 @@ EXPORT_SYMBOL_GPL(dw_pcie_ep_linkdown);
895923
int dw_pcie_ep_init(struct dw_pcie_ep *ep)
896924
{
897925
int ret;
898-
struct resource *res;
899926
struct pci_epc *epc;
900927
struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
901928
struct device *dev = pci->dev;
902-
struct platform_device *pdev = to_platform_device(dev);
903-
struct device_node *np = dev->of_node;
904929

905930
INIT_LIST_HEAD(&ep->func_list);
906931

@@ -913,24 +938,13 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep)
913938
ep->epc = epc;
914939
epc_set_drvdata(epc, ep);
915940

916-
ret = dw_pcie_get_resources(pci);
941+
ret = dw_pcie_ep_get_resources(ep);
917942
if (ret)
918943
return ret;
919944

920-
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "addr_space");
921-
if (!res)
922-
return -EINVAL;
923-
924-
ep->phys_base = res->start;
925-
ep->addr_size = resource_size(res);
926-
927945
if (ep->ops->pre_init)
928946
ep->ops->pre_init(ep);
929947

930-
ret = of_property_read_u8(np, "max-functions", &epc->max_functions);
931-
if (ret < 0)
932-
epc->max_functions = 1;
933-
934948
ret = pci_epc_mem_init(epc, ep->phys_base, ep->addr_size,
935949
ep->page_size);
936950
if (ret < 0) {

0 commit comments

Comments
 (0)