diff mbox series

[05/12] net: dc2114x: Use standard I/O accessors

Message ID 20200711123608.6541-5-marek.vasut+renesas@gmail.com
State New
Headers show
Series [01/12] net: dc2114x: Use PCI_DEVICE() to define PCI device compat list | expand

Commit Message

Marek Vasut July 11, 2020, 12:36 p.m. UTC
The current dc21x4x 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 at gmail.com>
Cc: Joe Hershberger <joe.hershberger at ni.com>
Cc: Ramon Fried <rfried.dev at gmail.com>
---
 drivers/net/dc2114x.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c
index af582c5415..9dd36e74de 100644
--- a/drivers/net/dc2114x.c
+++ b/drivers/net/dc2114x.c
@@ -1,6 +1,7 @@ 
 // SPDX-License-Identifier: GPL-2.0+
 
 #include <common.h>
+#include <asm/io.h>
 #include <env.h>
 #include <malloc.h>
 #include <net.h>
@@ -104,12 +105,12 @@  static char tx_ring_size;
 
 static u32 dc2114x_inl(struct eth_device *dev, u32 addr)
 {
-	return le32_to_cpu(*(volatile u32 *)(addr + dev->iobase));
+	return le32_to_cpu(readl(dev->iobase + addr));
 }
 
 static void dc2114x_outl(struct eth_device *dev, u32 command, u32 addr)
 {
-	*(volatile u32 *)(addr + dev->iobase) = cpu_to_le32(command);
+	writel(cpu_to_le32(command), dev->iobase + addr);
 }
 
 static void reset_de4x5(struct eth_device *dev)