octeon: fix edgerouter pro ethernet device probe order
authorFelix Fietkau <nbd@openwrt.org>
Thu, 10 Jul 2014 20:44:03 +0000 (20:44 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 10 Jul 2014 20:44:03 +0000 (20:44 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 41575

target/linux/octeon/patches-3.10/110-er200-ethernet_probe_order.patch [new file with mode: 0644]

diff --git a/target/linux/octeon/patches-3.10/110-er200-ethernet_probe_order.patch b/target/linux/octeon/patches-3.10/110-er200-ethernet_probe_order.patch
new file mode 100644 (file)
index 0000000..3d39a04
--- /dev/null
@@ -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++) {