diff options
Diffstat (limited to 'target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch')
-rw-r--r-- | target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch b/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch index b4a039ecc3..0bd8968a09 100644 --- a/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch +++ b/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch @@ -1,17 +1,17 @@ --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -663,6 +663,7 @@ static int cvm_oct_probe(struct platform - int interface; - int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE; - int qos; + int interface; + int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE; + int qos; + int i; - struct device_node *pip; - - octeon_mdiobus_force_mod_depencency(); + struct device_node *pip; + + octeon_mdiobus_force_mod_depencency(); @@ -747,13 +748,19 @@ static int cvm_oct_probe(struct platform - } - - num_interfaces = cvmx_helper_get_number_of_interfaces(); + } + + 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); @@ -20,15 +20,15 @@ + cvmx_helper_interface_mode_t imode; + int interface; + int num_ports; - int port; - int port_index; - + 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); + for (port_index = 0, + port = cvmx_helper_get_ipd_port(interface, 0); + port < cvmx_helper_get_ipd_port(interface, num_ports); |