Просмотр исходного кода

octeon: fix edgerouter pro ethernet device probe order

Signed-off-by: Felix Fietkau <[email protected]>

SVN-Revision: 41575
Felix Fietkau 11 лет назад
Родитель
Сommit
f083ca9743

+ 34 - 0
target/linux/octeon/patches-3.10/110-er200-ethernet_probe_order.patch

@@ -0,0 +1,34 @@
+--- a/drivers/staging/octeon/ethernet.c
++++ b/drivers/staging/octeon/ethernet.c
+@@ -623,6 +623,7 @@ static int cvm_oct_probe(struct platform
+ 	int interface;
+ 	int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE;
+ 	int qos;
++	int i;
+ 	struct device_node *pip;
+ 
+ 	octeon_mdiobus_force_mod_depencency();
+@@ -706,13 +707,19 @@ static int cvm_oct_probe(struct platform
+ 	}
+ 
+ 	num_interfaces = cvmx_helper_get_number_of_interfaces();
+-	for (interface = 0; interface < num_interfaces; interface++) {
+-		cvmx_helper_interface_mode_t imode =
+-		    cvmx_helper_interface_get_mode(interface);
+-		int num_ports = cvmx_helper_ports_on_interface(interface);
++	for (i = 0; i < num_interfaces; i++) {
++		cvmx_helper_interface_mode_t imode;
++		int interface;
++		int num_ports;
+ 		int port;
+ 		int port_index;
+ 
++		interface = i;
++		if (cvmx_sysinfo_get()->board_type == CVMX_BOARD_TYPE_UBNT_E200)
++			interface = num_interfaces - (i + 1);
++
++		num_ports = cvmx_helper_ports_on_interface(interface);
++		imode = cvmx_helper_interface_get_mode(interface);
+ 		for (port_index = 0, port = cvmx_helper_get_ipd_port(interface, 0);
+ 		     port < cvmx_helper_get_ipd_port(interface, num_ports);
+ 		     port_index++, port++) {