net: eepro100: Use standard I/O accessors

The current eepro100 driver accesses its memory mapped registers directly
instead of using the standard I/O accessors. This can cause problems on
some systems as the accesses can get out of order. So convert the direct
volatile dereferences to use the normal in/out macros.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
This commit is contained in:
Marek Vasut 2020-05-23 14:14:45 +02:00
parent f3878f5c28
commit 81bdeea2fe

View File

@ -220,23 +220,23 @@ static void eepro100_halt(struct eth_device *dev);
static inline int INW(struct eth_device *dev, u_long addr)
{
return le16_to_cpu(*(volatile u16 *)(addr + (u_long)dev->iobase));
return le16_to_cpu(readw(addr + (void *)dev->iobase));
}
static inline void OUTW(struct eth_device *dev, int command, u_long addr)
{
*(volatile u16 *)((addr + (u_long)dev->iobase)) = cpu_to_le16(command);
writew(cpu_to_le16(command), addr + (void *)dev->iobase);
}
static inline void OUTL(struct eth_device *dev, int command, u_long addr)
{
*(volatile u32 *)((addr + (u_long)dev->iobase)) = cpu_to_le32(command);
writel(cpu_to_le32(command), addr + (void *)dev->iobase);
}
#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
static inline int INL(struct eth_device *dev, u_long addr)
{
return le32_to_cpu(*(volatile u32 *)(addr + (u_long)dev->iobase));
return le32_to_cpu(readl(addr + (void *)dev->iobase));
}
static int get_phyreg(struct eth_device *dev, unsigned char addr,