Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d39a5e4 authored by Janne Huttunen's avatar Janne Huttunen Committed by Ralf Baechle
Browse files

STAGING: Octeon: Use common helpers for determining interface and port



Currently the Octeon Ethernet driver hardcodes the mapping between
interface/port and IPD port number. Since we have generic helpers for
the very same purpose, we might as well use them instead. This prevents
having the same information in multiple places.

Signed-off-by: default avatarJanne Huttunen <janne.huttunen@nokia.com>
Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@nokia.com>
Acked-by: default avatarDavid Daney <david.daney@cavium.com>
Cc: David Daney <ddaney.cavm@gmail.com>
Cc: linux-mips@linux-mips.org
Cc: Janne Huttunen <janne.huttunen@nokia.com>
Cc: Aaro Koskinen <aaro.koskinen@nokia.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devel@driverdev.osuosl.org
Patchwork: https://patchwork.linux-mips.org/patch/10975/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 31705376
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -8,6 +8,10 @@
 * published by the Free Software Foundation.
 */

#include <asm/octeon/cvmx-pip.h>
#include <asm/octeon/cvmx-helper.h>
#include <asm/octeon/cvmx-helper-util.h>

/**
 * cvm_oct_get_buffer_ptr - convert packet data address to pointer
 * @packet_ptr: Packet data hardware address
@@ -28,14 +32,12 @@ static inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr)
 */
static inline int INTERFACE(int ipd_port)
{
	if (ipd_port < 32)	/* Interface 0 or 1 for RGMII,GMII,SPI, etc */
		return ipd_port >> 4;
	else if (ipd_port < 36)	/* Interface 2 for NPI */
		return 2;
	else if (ipd_port < 40)	/* Interface 3 for loopback */
		return 3;
	else if (ipd_port == 40)	/* Non existent interface for POW0 */
		return 4;
	int interface = cvmx_helper_get_interface_num(ipd_port);

	if (interface >= 0)
		return interface;
	else if (ipd_port == CVMX_PIP_NUM_INPUT_PORTS)
		return 10;
	panic("Illegal ipd_port %d passed to INTERFACE\n", ipd_port);
}

@@ -47,7 +49,5 @@ static inline int INTERFACE(int ipd_port)
 */
static inline int INDEX(int ipd_port)
{
	if (ipd_port < 32)
		return ipd_port & 15;
	return ipd_port & 3;
	return cvmx_helper_get_interface_index_num(ipd_port);
}