Lines Matching refs:lp
2370 struct macb *lp = netdev_priv(dev); in at91ether_start() local
2375 lp->rx_ring = dma_alloc_coherent(&lp->pdev->dev, in at91ether_start()
2378 &lp->rx_ring_dma, GFP_KERNEL); in at91ether_start()
2379 if (!lp->rx_ring) in at91ether_start()
2382 lp->rx_buffers = dma_alloc_coherent(&lp->pdev->dev, in at91ether_start()
2385 &lp->rx_buffers_dma, GFP_KERNEL); in at91ether_start()
2386 if (!lp->rx_buffers) { in at91ether_start()
2387 dma_free_coherent(&lp->pdev->dev, in at91ether_start()
2390 lp->rx_ring, lp->rx_ring_dma); in at91ether_start()
2391 lp->rx_ring = NULL; in at91ether_start()
2395 addr = lp->rx_buffers_dma; in at91ether_start()
2397 lp->rx_ring[i].addr = addr; in at91ether_start()
2398 lp->rx_ring[i].ctrl = 0; in at91ether_start()
2403 lp->rx_ring[AT91ETHER_MAX_RX_DESCR - 1].addr |= MACB_BIT(RX_WRAP); in at91ether_start()
2406 lp->rx_tail = 0; in at91ether_start()
2409 macb_writel(lp, RBQP, lp->rx_ring_dma); in at91ether_start()
2412 ctl = macb_readl(lp, NCR); in at91ether_start()
2413 macb_writel(lp, NCR, ctl | MACB_BIT(RE) | MACB_BIT(TE)); in at91ether_start()
2421 struct macb *lp = netdev_priv(dev); in at91ether_open() local
2426 ctl = macb_readl(lp, NCR); in at91ether_open()
2427 macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT)); in at91ether_open()
2429 macb_set_hwaddr(lp); in at91ether_open()
2436 macb_writel(lp, IER, MACB_BIT(RCOMP) | in at91ether_open()
2445 phy_start(lp->phy_dev); in at91ether_open()
2455 struct macb *lp = netdev_priv(dev); in at91ether_close() local
2459 ctl = macb_readl(lp, NCR); in at91ether_close()
2460 macb_writel(lp, NCR, ctl & ~(MACB_BIT(TE) | MACB_BIT(RE))); in at91ether_close()
2463 macb_writel(lp, IDR, MACB_BIT(RCOMP) | in at91ether_close()
2473 dma_free_coherent(&lp->pdev->dev, in at91ether_close()
2476 lp->rx_ring, lp->rx_ring_dma); in at91ether_close()
2477 lp->rx_ring = NULL; in at91ether_close()
2479 dma_free_coherent(&lp->pdev->dev, in at91ether_close()
2481 lp->rx_buffers, lp->rx_buffers_dma); in at91ether_close()
2482 lp->rx_buffers = NULL; in at91ether_close()
2490 struct macb *lp = netdev_priv(dev); in at91ether_start_xmit() local
2492 if (macb_readl(lp, TSR) & MACB_BIT(RM9200_BNQ)) { in at91ether_start_xmit()
2496 lp->skb = skb; in at91ether_start_xmit()
2497 lp->skb_length = skb->len; in at91ether_start_xmit()
2498 lp->skb_physaddr = dma_map_single(NULL, skb->data, skb->len, in at91ether_start_xmit()
2502 macb_writel(lp, TAR, lp->skb_physaddr); in at91ether_start_xmit()
2504 macb_writel(lp, TCR, skb->len); in at91ether_start_xmit()
2519 struct macb *lp = netdev_priv(dev); in at91ether_rx() local
2524 while (lp->rx_ring[lp->rx_tail].addr & MACB_BIT(RX_USED)) { in at91ether_rx()
2525 p_recv = lp->rx_buffers + lp->rx_tail * AT91ETHER_MAX_RBUFF_SZ; in at91ether_rx()
2526 pktlen = MACB_BF(RX_FRMLEN, lp->rx_ring[lp->rx_tail].ctrl); in at91ether_rx()
2533 lp->stats.rx_packets++; in at91ether_rx()
2534 lp->stats.rx_bytes += pktlen; in at91ether_rx()
2537 lp->stats.rx_dropped++; in at91ether_rx()
2540 if (lp->rx_ring[lp->rx_tail].ctrl & MACB_BIT(RX_MHASH_MATCH)) in at91ether_rx()
2541 lp->stats.multicast++; in at91ether_rx()
2544 lp->rx_ring[lp->rx_tail].addr &= ~MACB_BIT(RX_USED); in at91ether_rx()
2547 if (lp->rx_tail == AT91ETHER_MAX_RX_DESCR - 1) in at91ether_rx()
2548 lp->rx_tail = 0; in at91ether_rx()
2550 lp->rx_tail++; in at91ether_rx()
2558 struct macb *lp = netdev_priv(dev); in at91ether_interrupt() local
2564 intstatus = macb_readl(lp, ISR); in at91ether_interrupt()
2574 lp->stats.tx_errors++; in at91ether_interrupt()
2576 if (lp->skb) { in at91ether_interrupt()
2577 dev_kfree_skb_irq(lp->skb); in at91ether_interrupt()
2578 lp->skb = NULL; in at91ether_interrupt()
2579 dma_unmap_single(NULL, lp->skb_physaddr, in at91ether_interrupt()
2580 lp->skb_length, DMA_TO_DEVICE); in at91ether_interrupt()
2581 lp->stats.tx_packets++; in at91ether_interrupt()
2582 lp->stats.tx_bytes += lp->skb_length; in at91ether_interrupt()
2589 ctl = macb_readl(lp, NCR); in at91ether_interrupt()
2590 macb_writel(lp, NCR, ctl & ~MACB_BIT(RE)); in at91ether_interrupt()
2591 macb_writel(lp, NCR, ctl | MACB_BIT(RE)); in at91ether_interrupt()