mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
ethoc: inline regs access
Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f6965582ac
commit
16dd18b083
1 changed files with 10 additions and 9 deletions
|
@ -222,24 +222,25 @@ struct ethoc_bd {
|
|||
u32 addr;
|
||||
};
|
||||
|
||||
static u32 ethoc_read(struct ethoc *dev, loff_t offset)
|
||||
static inline u32 ethoc_read(struct ethoc *dev, loff_t offset)
|
||||
{
|
||||
return ioread32(dev->iobase + offset);
|
||||
}
|
||||
|
||||
static void ethoc_write(struct ethoc *dev, loff_t offset, u32 data)
|
||||
static inline void ethoc_write(struct ethoc *dev, loff_t offset, u32 data)
|
||||
{
|
||||
iowrite32(data, dev->iobase + offset);
|
||||
}
|
||||
|
||||
static void ethoc_read_bd(struct ethoc *dev, int index, struct ethoc_bd *bd)
|
||||
static inline void ethoc_read_bd(struct ethoc *dev, int index,
|
||||
struct ethoc_bd *bd)
|
||||
{
|
||||
loff_t offset = ETHOC_BD_BASE + (index * sizeof(struct ethoc_bd));
|
||||
bd->stat = ethoc_read(dev, offset + 0);
|
||||
bd->addr = ethoc_read(dev, offset + 4);
|
||||
}
|
||||
|
||||
static void ethoc_write_bd(struct ethoc *dev, int index,
|
||||
static inline void ethoc_write_bd(struct ethoc *dev, int index,
|
||||
const struct ethoc_bd *bd)
|
||||
{
|
||||
loff_t offset = ETHOC_BD_BASE + (index * sizeof(struct ethoc_bd));
|
||||
|
@ -247,33 +248,33 @@ static void ethoc_write_bd(struct ethoc *dev, int index,
|
|||
ethoc_write(dev, offset + 4, bd->addr);
|
||||
}
|
||||
|
||||
static void ethoc_enable_irq(struct ethoc *dev, u32 mask)
|
||||
static inline void ethoc_enable_irq(struct ethoc *dev, u32 mask)
|
||||
{
|
||||
u32 imask = ethoc_read(dev, INT_MASK);
|
||||
imask |= mask;
|
||||
ethoc_write(dev, INT_MASK, imask);
|
||||
}
|
||||
|
||||
static void ethoc_disable_irq(struct ethoc *dev, u32 mask)
|
||||
static inline void ethoc_disable_irq(struct ethoc *dev, u32 mask)
|
||||
{
|
||||
u32 imask = ethoc_read(dev, INT_MASK);
|
||||
imask &= ~mask;
|
||||
ethoc_write(dev, INT_MASK, imask);
|
||||
}
|
||||
|
||||
static void ethoc_ack_irq(struct ethoc *dev, u32 mask)
|
||||
static inline void ethoc_ack_irq(struct ethoc *dev, u32 mask)
|
||||
{
|
||||
ethoc_write(dev, INT_SOURCE, mask);
|
||||
}
|
||||
|
||||
static void ethoc_enable_rx_and_tx(struct ethoc *dev)
|
||||
static inline void ethoc_enable_rx_and_tx(struct ethoc *dev)
|
||||
{
|
||||
u32 mode = ethoc_read(dev, MODER);
|
||||
mode |= MODER_RXEN | MODER_TXEN;
|
||||
ethoc_write(dev, MODER, mode);
|
||||
}
|
||||
|
||||
static void ethoc_disable_rx_and_tx(struct ethoc *dev)
|
||||
static inline void ethoc_disable_rx_and_tx(struct ethoc *dev)
|
||||
{
|
||||
u32 mode = ethoc_read(dev, MODER);
|
||||
mode &= ~(MODER_RXEN | MODER_TXEN);
|
||||
|
|
Loading…
Reference in a new issue