@@ -883,6 +883,34 @@ void dw_pcie_ep_linkdown(struct dw_pcie_ep *ep)
883883}
884884EXPORT_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);
895923int 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