]> git.baikalelectronics.ru Git - kernel.git/commit
net: ezchip: adapt driver to little endian architecture
authorLada Trimasova <Lada.Trimasova@synopsys.com>
Thu, 3 Mar 2016 14:07:46 +0000 (17:07 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Mar 2016 22:20:08 +0000 (17:20 -0500)
commit37826d0d03c19f12114c57d539a23769c06ff269
treec86b9a80d933da5798d6d0fc5262baa4f4fafcd5
parent0e61314a325aaaef90373d3fb68fbdc5f30c12f4
net: ezchip: adapt driver to little endian architecture

Since ezchip network driver is written with big endian EZChip platform it
is necessary to add support for little endian architecture.

The first issue is that the order of the bits in a bit field is
implementation specific. So all the bit fields are removed.
Named constants are used to access necessary fields.

And the second one is that network byte order is big endian.
For example, data on ethernet is transmitted with most-significant
octet (byte) first. So in case of little endian architecture
it is important to swap data byte order when we read it from
register. In case of unaligned access we can use "get_unaligned_be32"
and in other case we can use function "ioread32_rep" which reads all
data from register and works either with little endian or big endian
architecture.

And then when we are going to write data to register we need to restore
byte order using the function "put_unaligned_be32" in case of
unaligned access and in other case "iowrite32_rep".

The last little fix is a space between type and pointer to observe
coding style.

Signed-off-by: Lada Trimasova <ltrimas@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Noam Camus <noamc@ezchip.com>
Cc: Tal Zilcer <talz@ezchip.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ezchip/nps_enet.c
drivers/net/ethernet/ezchip/nps_enet.h