@@ -883,6 +883,34 @@ void dw_pcie_ep_linkdown(struct dw_pcie_ep *ep)
883
883
}
884
884
EXPORT_SYMBOL_GPL (dw_pcie_ep_linkdown );
885
885
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
+
886
914
/**
887
915
* dw_pcie_ep_init - Initialize the endpoint device
888
916
* @ep: DWC EP device
@@ -895,12 +923,9 @@ EXPORT_SYMBOL_GPL(dw_pcie_ep_linkdown);
895
923
int dw_pcie_ep_init (struct dw_pcie_ep * ep )
896
924
{
897
925
int ret ;
898
- struct resource * res ;
899
926
struct pci_epc * epc ;
900
927
struct dw_pcie * pci = to_dw_pcie_from_ep (ep );
901
928
struct device * dev = pci -> dev ;
902
- struct platform_device * pdev = to_platform_device (dev );
903
- struct device_node * np = dev -> of_node ;
904
929
905
930
INIT_LIST_HEAD (& ep -> func_list );
906
931
@@ -913,24 +938,13 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep)
913
938
ep -> epc = epc ;
914
939
epc_set_drvdata (epc , ep );
915
940
916
- ret = dw_pcie_get_resources ( pci );
941
+ ret = dw_pcie_ep_get_resources ( ep );
917
942
if (ret )
918
943
return ret ;
919
944
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
-
927
945
if (ep -> ops -> pre_init )
928
946
ep -> ops -> pre_init (ep );
929
947
930
- ret = of_property_read_u8 (np , "max-functions" , & epc -> max_functions );
931
- if (ret < 0 )
932
- epc -> max_functions = 1 ;
933
-
934
948
ret = pci_epc_mem_init (epc , ep -> phys_base , ep -> addr_size ,
935
949
ep -> page_size );
936
950
if (ret < 0 ) {
0 commit comments