--- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -679,6 +679,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; int mtu_overhead = ETH_HLEN + ETH_FCS_LEN; @@ -802,13 +803,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);