Re: [PATCH] net: macb: fix endian code for avr32
From: Nicolas Ferre <hidden>
Date: 2015-03-18 12:27:25
Also in:
lkml
Le 18/03/2015 13:25, Hans-Christian Egtvedt a écrit :
Around Wed 18 Mar 2015 10:57:27 +0000 or thereabout, Ben Dooks wrote:quoted
[note this has yet to be compile tested on avr32]Compiles fine without warnings.quoted
The changes to run the macb driver in 29af05aeb98e ("net: macb: Add big endian CPU support") to support big endian operation on ARM may not work on AVR32 which already is naturally big endian architecture (and the driver already works here).The 29af05aeb98e will brick the macb driver for AVR32, as readZ_relaxed translates to readZ calls, which turns into le_to_cpu reads.quoted
In this case the readl/writel relaxed will do the opposite of __raw accesors which arleady work. Add an indirection of cdneth_ prefixed accesors which are changed as necessary. Also do not issue the DMA descritpor endian fetch configuration for AVR32. From discussions with Arnd Bergman, the following fix changes the use of readl_relaxed and writel_relaxed with a version that can be put back to __raw_readl/__raw_writel for the CONFIG_AVR32 case (and also remove the change to the DMA descriptor endian).Thank you for spotting this.quoted
Signed-off-by: Ben Dooks <redacted> Reported-by: Arnd Bergmann <arnd@arndb.de>Acked-by: Hans-Christian Egtvedt <redacted>
Acked-by: Nicolas Ferre <redacted>
quoted
-- CC: Linux Networking List <redacted> CC: Arun Chandran <redacted> CC: Haavard Skinnemoen <redacted> CC: Hans-Christian Egtvedt <redacted> CC: Linux Kernel List <redacted> CC: Nicolas Ferre <redacted> --- drivers/net/ethernet/cadence/macb.c | 14 +++++++------- drivers/net/ethernet/cadence/macb.h | 20 ++++++++++++++------ 2 files changed, 21 insertions(+), 13 deletions(-)<snipp diff>
-- Nicolas Ferre