X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fflorian.git;a=blobdiff_plain;f=target%2Flinux%2Focteon%2Fpatches-4.9%2F110-er200-ethernet_probe_order.patch;fp=target%2Flinux%2Focteon%2Fpatches-4.9%2F110-er200-ethernet_probe_order.patch;h=1df3f6a67554e9df2d33c5312a6c2282b4099804;hp=0000000000000000000000000000000000000000;hb=611731a690789c5e7d221c416cb89a7cc327b2fe;hpb=6138d8424337cd60a7b5446e7470072517235e89 diff --git a/target/linux/octeon/patches-4.9/110-er200-ethernet_probe_order.patch b/target/linux/octeon/patches-4.9/110-er200-ethernet_probe_order.patch new file mode 100644 index 0000000000..1df3f6a675 --- /dev/null +++ b/target/linux/octeon/patches-4.9/110-er200-ethernet_probe_order.patch @@ -0,0 +1,34 @@ +--- a/drivers/staging/octeon/ethernet.c ++++ b/drivers/staging/octeon/ethernet.c +@@ -684,6 +684,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(); +@@ -800,13 +801,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);