提交 8510580f 编写于 作者: D Daniel Schwierzeck 提交者: Tom Rini

net: pcnet: fix I/O primitives for memory access

Commit 69529c91 ("net: pcnet: Switch to PCI memory access")
switched from PCI IO access to PCI memory access without updating
the I/O primitives. Contrary to SH, the primitives for memory
access and IO access are implemented differently. Thus doing
memory access with IO port primitives breaks the driver on
MIPS Malta board.
Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
上级 04da4277
......@@ -91,37 +91,49 @@ static pcnet_priv_t *lp;
static u16 pcnet_read_csr(struct eth_device *dev, int index)
{
outw(index, dev->iobase + PCNET_RAP);
return inw(dev->iobase + PCNET_RDP);
void __iomem *base = (void __iomem *)dev->iobase;
writew(index, base + PCNET_RAP);
return readw(base + PCNET_RDP);
}
static void pcnet_write_csr(struct eth_device *dev, int index, u16 val)
{
outw(index, dev->iobase + PCNET_RAP);
outw(val, dev->iobase + PCNET_RDP);
void __iomem *base = (void __iomem *)dev->iobase;
writew(index, base + PCNET_RAP);
writew(val, base + PCNET_RDP);
}
static u16 pcnet_read_bcr(struct eth_device *dev, int index)
{
outw(index, dev->iobase + PCNET_RAP);
return inw(dev->iobase + PCNET_BDP);
void __iomem *base = (void __iomem *)dev->iobase;
writew(index, base + PCNET_RAP);
return readw(base + PCNET_BDP);
}
static void pcnet_write_bcr(struct eth_device *dev, int index, u16 val)
{
outw(index, dev->iobase + PCNET_RAP);
outw(val, dev->iobase + PCNET_BDP);
void __iomem *base = (void __iomem *)dev->iobase;
writew(index, base + PCNET_RAP);
writew(val, base + PCNET_BDP);
}
static void pcnet_reset(struct eth_device *dev)
{
inw(dev->iobase + PCNET_RESET);
void __iomem *base = (void __iomem *)dev->iobase;
readw(base + PCNET_RESET);
}
static int pcnet_check(struct eth_device *dev)
{
outw(88, dev->iobase + PCNET_RAP);
return inw(dev->iobase + PCNET_RAP) == 88;
void __iomem *base = (void __iomem *)dev->iobase;
writew(88, base + PCNET_RAP);
return readw(base + PCNET_RAP) == 88;
}
static int pcnet_init (struct eth_device *dev, bd_t * bis);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册