• Home
  • Raw
  • Download

Lines Matching refs:lp

47 #define WRITERAP(lp,x) out_be16(lp->base + LANCE_RAP, (x))  argument
48 #define WRITERDP(lp,x) out_be16(lp->base + LANCE_RDP, (x)) argument
49 #define READRDP(lp) in_be16(lp->base + LANCE_RDP) argument
61 #define WRITERAP(lp,x) (lp->writerap(lp,x)) argument
62 #define WRITERDP(lp,x) (lp->writerdp(lp,x)) argument
63 #define READRDP(lp) (lp->readrdp(lp)) argument
68 static inline void WRITERAP(struct lance_private *lp, __u16 value) in WRITERAP() argument
71 out_be16(lp->base + HPLANCE_REGOFF + LANCE_RAP, value); in WRITERAP()
72 } while ((in_8(lp->base + HPLANCE_STATUS) & LE_ACK) == 0); in WRITERAP()
75 static inline void WRITERDP(struct lance_private *lp, __u16 value) in WRITERDP() argument
78 out_be16(lp->base + HPLANCE_REGOFF + LANCE_RDP, value); in WRITERDP()
79 } while ((in_8(lp->base + HPLANCE_STATUS) & LE_ACK) == 0); in WRITERDP()
82 static inline __u16 READRDP(struct lance_private *lp) in READRDP() argument
86 value = in_be16(lp->base + HPLANCE_REGOFF + LANCE_RDP); in READRDP()
87 } while ((in_8(lp->base + HPLANCE_STATUS) & LE_ACK) == 0); in READRDP()
118 static void load_csrs (struct lance_private *lp) in load_csrs() argument
120 volatile struct lance_init_block *aib = lp->lance_init_block; in load_csrs()
125 WRITERAP(lp, LE_CSR1); /* load address of init block */ in load_csrs()
126 WRITERDP(lp, leptr & 0xFFFF); in load_csrs()
127 WRITERAP(lp, LE_CSR2); in load_csrs()
128 WRITERDP(lp, leptr >> 16); in load_csrs()
129 WRITERAP(lp, LE_CSR3); in load_csrs()
130 WRITERDP(lp, lp->busmaster_regval); /* set byteswap/ALEctrl/byte ctrl */ in load_csrs()
133 WRITERAP(lp, LE_CSR0); in load_csrs()
141 struct lance_private *lp = netdev_priv(dev); in lance_init_ring() local
142 volatile struct lance_init_block *ib = lp->init_block; in lance_init_ring()
147 aib = lp->lance_init_block; in lance_init_ring()
149 lp->rx_new = lp->tx_new = 0; in lance_init_ring()
150 lp->rx_old = lp->tx_old = 0; in lance_init_ring()
179 lp->tx_full = 0; in lance_init_ring()
181 for (i = 0; i < (1<<lp->lance_log_tx_bufs); i++) { in lance_init_ring()
195 for (i = 0; i < (1<<lp->lance_log_rx_bufs); i++) { in lance_init_ring()
212 ib->rx_len = (lp->lance_log_rx_bufs << 13) | (leptr >> 16); in lance_init_ring()
219 ib->tx_len = (lp->lance_log_tx_bufs << 13) | (leptr >> 16); in lance_init_ring()
231 static int init_restart_lance (struct lance_private *lp) in init_restart_lance() argument
235 WRITERAP(lp, LE_CSR0); in init_restart_lance()
236 WRITERDP(lp, LE_C0_INIT); in init_restart_lance()
241 for (i = 0; (i < 100) && !(READRDP(lp) & (LE_C0_ERR | LE_C0_IDON)); i++) in init_restart_lance()
243 if ((i == 100) || (READRDP(lp) & LE_C0_ERR)) { in init_restart_lance()
244 printk ("LANCE unopened after %d ticks, csr0=%4.4x.\n", i, READRDP(lp)); in init_restart_lance()
249 WRITERDP(lp, LE_C0_IDON); in init_restart_lance()
250 WRITERDP(lp, LE_C0_INEA | LE_C0_STRT); in init_restart_lance()
257 struct lance_private *lp = netdev_priv(dev); in lance_reset() local
261 WRITERAP(lp, LE_CSR0); in lance_reset()
262 WRITERDP(lp, LE_C0_STOP); in lance_reset()
264 load_csrs (lp); in lance_reset()
267 status = init_restart_lance (lp); in lance_reset()
276 struct lance_private *lp = netdev_priv(dev); in lance_rx() local
277 volatile struct lance_init_block *ib = lp->init_block; in lance_rx()
287 if (i == lp->rx_new) in lance_rx()
299 WRITERDP(lp, LE_C0_RINT | LE_C0_INEA); /* ack Rx int, reenable ints */ in lance_rx()
300 for (rd = &ib->brx_ring [lp->rx_new]; /* For each Rx ring we own... */ in lance_rx()
302 rd = &ib->brx_ring [lp->rx_new]) { in lance_rx()
328 lp->rx_new = (lp->rx_new + 1) & lp->rx_ring_mod_mask; in lance_rx()
335 (unsigned char *)&(ib->rx_buf [lp->rx_new][0]), in lance_rx()
346 lp->rx_new = (lp->rx_new + 1) & lp->rx_ring_mod_mask; in lance_rx()
353 struct lance_private *lp = netdev_priv(dev); in lance_tx() local
354 volatile struct lance_init_block *ib = lp->init_block; in lance_tx()
363 WRITERDP(lp, LE_C0_TINT | LE_C0_INEA); in lance_tx()
366 j = lp->tx_old; in lance_tx()
367 for (i = j; i != lp->tx_new; i = j) { in lance_tx()
383 if (lp->auto_select) { in lance_tx()
384 lp->tpe = 1 - lp->tpe; in lance_tx()
386 dev->name, lp->tpe?"TPE":"AUI"); in lance_tx()
388 WRITERAP(lp, LE_CSR0); in lance_tx()
389 WRITERDP(lp, LE_C0_STOP); in lance_tx()
391 load_csrs (lp); in lance_tx()
392 init_restart_lance (lp); in lance_tx()
405 WRITERAP(lp, LE_CSR0); in lance_tx()
406 WRITERDP(lp, LE_C0_STOP); in lance_tx()
408 load_csrs (lp); in lance_tx()
409 init_restart_lance (lp); in lance_tx()
429 j = (j + 1) & lp->tx_ring_mod_mask; in lance_tx()
431 lp->tx_old = j; in lance_tx()
432 WRITERDP(lp, LE_C0_TINT | LE_C0_INEA); in lance_tx()
440 struct lance_private *lp = netdev_priv(dev); in lance_interrupt() local
443 spin_lock (&lp->devlock); in lance_interrupt()
445 WRITERAP(lp, LE_CSR0); /* LANCE Controller Status */ in lance_interrupt()
446 csr0 = READRDP(lp); in lance_interrupt()
451 spin_unlock (&lp->devlock); in lance_interrupt()
456 WRITERDP(lp, csr0 & ~(LE_C0_INEA|LE_C0_TDMD|LE_C0_STOP|LE_C0_STRT|LE_C0_INIT)); in lance_interrupt()
460 WRITERDP(lp, LE_C0_BABL|LE_C0_ERR|LE_C0_MISS|LE_C0_INEA); in lance_interrupt()
478 WRITERDP(lp, LE_C0_STRT); in lance_interrupt()
481 if (lp->tx_full && netif_queue_stopped(dev) && (TX_BUFFS_AVAIL >= 0)) { in lance_interrupt()
482 lp->tx_full = 0; in lance_interrupt()
486 WRITERAP(lp, LE_CSR0); in lance_interrupt()
487 WRITERDP(lp, LE_C0_BABL|LE_C0_CERR|LE_C0_MISS|LE_C0_MERR|LE_C0_IDON|LE_C0_INEA); in lance_interrupt()
489 spin_unlock (&lp->devlock); in lance_interrupt()
495 struct lance_private *lp = netdev_priv(dev); in lance_open() local
499 if (request_irq(lp->irq, lance_interrupt, IRQF_SHARED, lp->name, dev)) in lance_open()
503 spin_lock_init(&lp->devlock); in lance_open()
512 struct lance_private *lp = netdev_priv(dev); in lance_close() local
517 WRITERAP(lp, LE_CSR0); in lance_close()
518 WRITERDP(lp, LE_C0_STOP); in lance_close()
520 free_irq(lp->irq, dev); in lance_close()
537 struct lance_private *lp = netdev_priv(dev); in lance_start_xmit() local
538 volatile struct lance_init_block *ib = lp->init_block; in lance_start_xmit()
563 entry = lp->tx_new & lp->tx_ring_mod_mask; in lance_start_xmit()
573 lp->tx_new = (lp->tx_new+1) & lp->tx_ring_mod_mask; in lance_start_xmit()
577 WRITERDP(lp, LE_C0_INEA | LE_C0_TDMD); in lance_start_xmit()
581 spin_lock_irqsave (&lp->devlock, flags); in lance_start_xmit()
585 lp->tx_full = 1; in lance_start_xmit()
586 spin_unlock_irqrestore (&lp->devlock, flags); in lance_start_xmit()
595 struct lance_private *lp = netdev_priv(dev); in lance_load_multicast() local
596 volatile struct lance_init_block *ib = lp->init_block; in lance_load_multicast()
632 struct lance_private *lp = netdev_priv(dev); in lance_set_multicast() local
633 volatile struct lance_init_block *ib = lp->init_block; in lance_set_multicast()
640 while (lp->tx_old != lp->tx_new) in lance_set_multicast()
643 WRITERAP(lp, LE_CSR0); in lance_set_multicast()
644 WRITERDP(lp, LE_C0_STOP); in lance_set_multicast()
653 load_csrs (lp); in lance_set_multicast()
654 init_restart_lance (lp); in lance_set_multicast()
664 struct lance_private *lp = netdev_priv(dev); in lance_poll() local
666 spin_lock (&lp->devlock); in lance_poll()
667 WRITERAP(lp, LE_CSR0); in lance_poll()
668 WRITERDP(lp, LE_C0_STRT); in lance_poll()
669 spin_unlock (&lp->devlock); in lance_poll()