OSDN Git Service

sh_eth: make sh_eth_soft_swap() work on ARM
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Sat, 2 Jun 2018 19:37:42 +0000 (22:37 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Jun 2018 19:23:24 +0000 (15:23 -0400)
commit232b6743e4d12d8383aaf2d632d5ed4cc377419e
tree6b1fff333530f6ab193b20628c1ec98dff7a3ee8
parent20677108c51b467e2325554f47f13b5666d49ffe
sh_eth: make sh_eth_soft_swap() work on ARM

Browsing  thru the driver disassembly, I noticed that ARM gcc generated
no  code  whatsoever for sh_eth_soft_swap() while building a little-endian
kernel -- apparently __LITTLE_ENDIAN__ was not being #define'd, however
it got implicitly #define'd when building with the SH gcc (I could only
find the explicit #define __LITTLE_ENDIAN that was #include'd when building
a little-endian kernel).  Luckily, the Ether controller  only doing big-
endian DMA is encountered on the early SH771x SoCs only and all ARM SoCs
implement EDMR.DE and thus set 'sh_eth_cpu_data::hw_swap'. But anyway, we
need to fix the #ifdef inside sh_eth_soft_swap() to something that would
work on all architectures...

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/sh_eth.h