Lines Matching refs:lp

47 	struct sonic_local *lp = netdev_priv(dev);
58 dev_kfree_skb(lp->rx_skb[i]);
59 lp->rx_skb[i] = NULL;
66 if (SONIC_BUS_SCALE(lp->dma_bitmode) == 2)
68 lp->rx_skb[i] = skb;
72 dma_addr_t laddr = dma_map_single(lp->device, skb_put(lp->rx_skb[i], SONIC_RBSIZE),
77 dma_unmap_single(lp->device, lp->rx_laddr[i], SONIC_RBSIZE, DMA_FROM_DEVICE);
78 lp->rx_laddr[i] = (dma_addr_t)0;
81 dev_kfree_skb(lp->rx_skb[i]);
82 lp->rx_skb[i] = NULL;
88 lp->rx_laddr[i] = laddr;
110 struct sonic_local *lp = netdev_priv(dev);
127 if(lp->tx_laddr[i]) {
128 dma_unmap_single(lp->device, lp->tx_laddr[i], lp->tx_len[i], DMA_TO_DEVICE);
129 lp->tx_laddr[i] = (dma_addr_t)0;
131 if(lp->tx_skb[i]) {
132 dev_kfree_skb(lp->tx_skb[i]);
133 lp->tx_skb[i] = NULL;
139 if(lp->rx_laddr[i]) {
140 dma_unmap_single(lp->device, lp->rx_laddr[i], SONIC_RBSIZE, DMA_FROM_DEVICE);
141 lp->rx_laddr[i] = (dma_addr_t)0;
143 if(lp->rx_skb[i]) {
144 dev_kfree_skb(lp->rx_skb[i]);
145 lp->rx_skb[i] = NULL;
154 struct sonic_local *lp = netdev_priv(dev);
165 if(lp->tx_laddr[i]) {
166 dma_unmap_single(lp->device, lp->tx_laddr[i], lp->tx_len[i], DMA_TO_DEVICE);
167 lp->tx_laddr[i] = (dma_addr_t)0;
169 if(lp->tx_skb[i]) {
170 dev_kfree_skb(lp->tx_skb[i]);
171 lp->tx_skb[i] = NULL;
176 lp->stats.tx_errors++;
203 struct sonic_local *lp = netdev_priv(dev);
206 int entry = lp->next_tx;
222 laddr = dma_map_single(lp->device, skb->data, length, DMA_TO_DEVICE);
243 lp->tx_len[entry] = length;
244 lp->tx_laddr[entry] = laddr;
245 lp->tx_skb[entry] = skb;
248 sonic_tda_put(dev, lp->eol_tx, SONIC_TD_LINK,
249 sonic_tda_get(dev, lp->eol_tx, SONIC_TD_LINK) & ~SONIC_EOL);
250 lp->eol_tx = entry;
252 lp->next_tx = (entry + 1) & SONIC_TDS_MASK;
253 if (lp->tx_skb[lp->next_tx] != NULL) {
276 struct sonic_local *lp = netdev_priv(dev);
291 int entry = lp->cur_tx;
305 while (lp->tx_skb[entry] != NULL) {
310 lp->stats.tx_packets++;
311 lp->stats.tx_bytes += sonic_tda_get(dev, entry, SONIC_TD_PKTSIZE);
313 lp->stats.tx_errors++;
315 lp->stats.tx_aborted_errors++;
317 lp->stats.tx_carrier_errors++;
319 lp->stats.tx_window_errors++;
321 lp->stats.tx_fifo_errors++;
325 dev_kfree_skb_irq(lp->tx_skb[entry]);
326 lp->tx_skb[entry] = NULL;
328 dma_unmap_single(lp->device, lp->tx_laddr[entry], lp->tx_len[entry], DMA_TO_DEVICE);
329 lp->tx_laddr[entry] = (dma_addr_t)0;
339 if (freed_some || lp->tx_skb[entry] == NULL)
341 lp->cur_tx = entry;
351 lp->stats.rx_fifo_errors++;
357 lp->stats.rx_dropped++;
363 lp->stats.rx_dropped++;
369 lp->stats.rx_frame_errors += 65536;
373 lp->stats.rx_crc_errors += 65536;
377 lp->stats.rx_missed_errors += 65536;
410 struct sonic_local *lp = netdev_priv(dev);
412 int entry = lp->cur_rx;
427 lp->stats.rx_dropped++;
431 if(SONIC_BUS_SCALE(lp->dma_bitmode) == 2)
434 new_laddr = dma_map_single(lp->device, skb_put(new_skb, SONIC_RBSIZE),
439 lp->stats.rx_dropped++;
444 dma_unmap_single(lp->device, lp->rx_laddr[entry], SONIC_RBSIZE, DMA_FROM_DEVICE);
445 used_skb = lp->rx_skb[entry];
450 lp->stats.rx_packets++;
451 lp->stats.rx_bytes += pkt_len;
454 lp->rx_laddr[entry] = new_laddr;
455 lp->rx_skb[entry] = new_skb;
463 lp->stats.rx_errors++;
465 lp->stats.rx_frame_errors++;
467 lp->stats.rx_crc_errors++;
474 lp->cur_rwp += SIZEOF_SONIC_RR * SONIC_BUS_SCALE(lp->dma_bitmode);
475 if (lp->cur_rwp >= lp->rra_end) lp->cur_rwp = lp->rra_laddr & 0xffff;
476 SONIC_WRITE(SONIC_RWP, lp->cur_rwp);
491 sonic_rda_put(dev, lp->eol_rx, SONIC_RD_LINK,
492 sonic_rda_get(dev, lp->eol_rx, SONIC_RD_LINK) & ~SONIC_EOL);
493 lp->eol_rx = entry;
494 lp->cur_rx = entry = (entry + 1) & SONIC_RDS_MASK;
510 struct sonic_local *lp = netdev_priv(dev);
513 lp->stats.rx_crc_errors += SONIC_READ(SONIC_CRCT);
515 lp->stats.rx_frame_errors += SONIC_READ(SONIC_FAET);
517 lp->stats.rx_missed_errors += SONIC_READ(SONIC_MPT);
520 return &lp->stats;
529 struct sonic_local *lp = netdev_priv(dev);
560 SONIC_WRITE(SONIC_CDP, lp->cda_laddr & 0xffff);
578 struct sonic_local *lp = netdev_priv(dev);
603 u16 bufadr_l = (unsigned long)lp->rx_laddr[i] & 0xffff;
604 u16 bufadr_h = (unsigned long)lp->rx_laddr[i] >> 16;
612 lp->rra_end = (lp->rra_laddr + SONIC_NUM_RRS * SIZEOF_SONIC_RR *
613 SONIC_BUS_SCALE(lp->dma_bitmode)) & 0xffff;
614 lp->cur_rwp = (lp->rra_laddr + (SONIC_NUM_RRS - 1) * SIZEOF_SONIC_RR *
615 SONIC_BUS_SCALE(lp->dma_bitmode)) & 0xffff;
617 SONIC_WRITE(SONIC_RSA, lp->rra_laddr & 0xffff);
618 SONIC_WRITE(SONIC_REA, lp->rra_end);
619 SONIC_WRITE(SONIC_RRP, lp->rra_laddr & 0xffff);
620 SONIC_WRITE(SONIC_RWP, lp->cur_rwp);
621 SONIC_WRITE(SONIC_URRA, lp->rra_laddr >> 16);
622 SONIC_WRITE(SONIC_EOBC, (SONIC_RBSIZE >> 1) - (lp->dma_bitmode ? 2 : 1));
653 lp->rda_laddr +
654 ((i+1) * SIZEOF_SONIC_RD * SONIC_BUS_SCALE(lp->dma_bitmode)));
658 (lp->rda_laddr & 0xffff) | SONIC_EOL);
659 lp->eol_rx = SONIC_NUM_RDS - 1;
660 lp->cur_rx = 0;
661 SONIC_WRITE(SONIC_URDA, lp->rda_laddr >> 16);
662 SONIC_WRITE(SONIC_CRDA, lp->rda_laddr & 0xffff);
675 (lp->tda_laddr & 0xffff) +
676 (i + 1) * SIZEOF_SONIC_TD * SONIC_BUS_SCALE(lp->dma_bitmode));
677 lp->tx_skb[i] = NULL;
681 (lp->tda_laddr & 0xffff));
683 SONIC_WRITE(SONIC_UTDA, lp->tda_laddr >> 16);
684 SONIC_WRITE(SONIC_CTDA, lp->tda_laddr & 0xffff);
685 lp->cur_tx = lp->next_tx = 0;
686 lp->eol_tx = SONIC_NUM_TDS - 1;
702 SONIC_WRITE(SONIC_CDP, lp->cda_laddr & 0xffff);