diff options
Diffstat (limited to 'drivers/net/ethoc.c')
| -rw-r--r-- | drivers/net/ethoc.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index 9c950bb5e90c..f7d9ac8324cb 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c | |||
| @@ -223,24 +223,25 @@ struct ethoc_bd { | |||
| 223 | u32 addr; | 223 | u32 addr; |
| 224 | }; | 224 | }; |
| 225 | 225 | ||
| 226 | static u32 ethoc_read(struct ethoc *dev, loff_t offset) | 226 | static inline u32 ethoc_read(struct ethoc *dev, loff_t offset) |
| 227 | { | 227 | { |
| 228 | return ioread32(dev->iobase + offset); | 228 | return ioread32(dev->iobase + offset); |
| 229 | } | 229 | } |
| 230 | 230 | ||
| 231 | static void ethoc_write(struct ethoc *dev, loff_t offset, u32 data) | 231 | static inline void ethoc_write(struct ethoc *dev, loff_t offset, u32 data) |
| 232 | { | 232 | { |
| 233 | iowrite32(data, dev->iobase + offset); | 233 | iowrite32(data, dev->iobase + offset); |
| 234 | } | 234 | } |
| 235 | 235 | ||
| 236 | static void ethoc_read_bd(struct ethoc *dev, int index, struct ethoc_bd *bd) | 236 | static inline void ethoc_read_bd(struct ethoc *dev, int index, |
| 237 | struct ethoc_bd *bd) | ||
| 237 | { | 238 | { |
| 238 | loff_t offset = ETHOC_BD_BASE + (index * sizeof(struct ethoc_bd)); | 239 | loff_t offset = ETHOC_BD_BASE + (index * sizeof(struct ethoc_bd)); |
| 239 | bd->stat = ethoc_read(dev, offset + 0); | 240 | bd->stat = ethoc_read(dev, offset + 0); |
| 240 | bd->addr = ethoc_read(dev, offset + 4); | 241 | bd->addr = ethoc_read(dev, offset + 4); |
| 241 | } | 242 | } |
| 242 | 243 | ||
| 243 | static void ethoc_write_bd(struct ethoc *dev, int index, | 244 | static inline void ethoc_write_bd(struct ethoc *dev, int index, |
| 244 | const struct ethoc_bd *bd) | 245 | const struct ethoc_bd *bd) |
| 245 | { | 246 | { |
| 246 | loff_t offset = ETHOC_BD_BASE + (index * sizeof(struct ethoc_bd)); | 247 | loff_t offset = ETHOC_BD_BASE + (index * sizeof(struct ethoc_bd)); |
| @@ -248,33 +249,33 @@ static void ethoc_write_bd(struct ethoc *dev, int index, | |||
| 248 | ethoc_write(dev, offset + 4, bd->addr); | 249 | ethoc_write(dev, offset + 4, bd->addr); |
| 249 | } | 250 | } |
| 250 | 251 | ||
| 251 | static void ethoc_enable_irq(struct ethoc *dev, u32 mask) | 252 | static inline void ethoc_enable_irq(struct ethoc *dev, u32 mask) |
| 252 | { | 253 | { |
| 253 | u32 imask = ethoc_read(dev, INT_MASK); | 254 | u32 imask = ethoc_read(dev, INT_MASK); |
| 254 | imask |= mask; | 255 | imask |= mask; |
| 255 | ethoc_write(dev, INT_MASK, imask); | 256 | ethoc_write(dev, INT_MASK, imask); |
| 256 | } | 257 | } |
| 257 | 258 | ||
| 258 | static void ethoc_disable_irq(struct ethoc *dev, u32 mask) | 259 | static inline void ethoc_disable_irq(struct ethoc *dev, u32 mask) |
| 259 | { | 260 | { |
| 260 | u32 imask = ethoc_read(dev, INT_MASK); | 261 | u32 imask = ethoc_read(dev, INT_MASK); |
| 261 | imask &= ~mask; | 262 | imask &= ~mask; |
| 262 | ethoc_write(dev, INT_MASK, imask); | 263 | ethoc_write(dev, INT_MASK, imask); |
| 263 | } | 264 | } |
| 264 | 265 | ||
| 265 | static void ethoc_ack_irq(struct ethoc *dev, u32 mask) | 266 | static inline void ethoc_ack_irq(struct ethoc *dev, u32 mask) |
| 266 | { | 267 | { |
| 267 | ethoc_write(dev, INT_SOURCE, mask); | 268 | ethoc_write(dev, INT_SOURCE, mask); |
| 268 | } | 269 | } |
| 269 | 270 | ||
| 270 | static void ethoc_enable_rx_and_tx(struct ethoc *dev) | 271 | static inline void ethoc_enable_rx_and_tx(struct ethoc *dev) |
| 271 | { | 272 | { |
| 272 | u32 mode = ethoc_read(dev, MODER); | 273 | u32 mode = ethoc_read(dev, MODER); |
| 273 | mode |= MODER_RXEN | MODER_TXEN; | 274 | mode |= MODER_RXEN | MODER_TXEN; |
| 274 | ethoc_write(dev, MODER, mode); | 275 | ethoc_write(dev, MODER, mode); |
| 275 | } | 276 | } |
| 276 | 277 | ||
| 277 | static void ethoc_disable_rx_and_tx(struct ethoc *dev) | 278 | static inline void ethoc_disable_rx_and_tx(struct ethoc *dev) |
| 278 | { | 279 | { |
| 279 | u32 mode = ethoc_read(dev, MODER); | 280 | u32 mode = ethoc_read(dev, MODER); |
| 280 | mode &= ~(MODER_RXEN | MODER_TXEN); | 281 | mode &= ~(MODER_RXEN | MODER_TXEN); |
| @@ -508,7 +509,7 @@ static irqreturn_t ethoc_interrupt(int irq, void *dev_id) | |||
| 508 | return IRQ_NONE; | 509 | return IRQ_NONE; |
| 509 | } | 510 | } |
| 510 | 511 | ||
| 511 | ethoc_ack_irq(priv, INT_MASK_ALL); | 512 | ethoc_ack_irq(priv, pending); |
| 512 | 513 | ||
| 513 | if (pending & INT_MASK_BUSY) { | 514 | if (pending & INT_MASK_BUSY) { |
| 514 | dev_err(&dev->dev, "packet dropped\n"); | 515 | dev_err(&dev->dev, "packet dropped\n"); |
