Lines Matching refs:descr

257  * @descr: descriptor to look at
277 struct spider_net_descr *descr;
279 descr = chain->ring;
281 descr->bus_addr = 0;
282 descr->hwdescr->next_descr_addr = 0;
283 descr = descr->next;
284 } while (descr != chain->ring);
305 struct spider_net_descr *descr;
318 descr = chain->ring;
321 for (i=0; i < chain->num_desc; i++, descr++, hwdescr++) {
325 descr->hwdescr = hwdescr;
326 descr->bus_addr = buf;
327 descr->next = descr + 1;
328 descr->prev = descr - 1;
333 (descr-1)->next = chain->ring;
334 chain->ring->prev = descr-1;
343 * spider_net_free_rx_chain_contents - frees descr contents in rx chain
351 struct spider_net_descr *descr;
353 descr = card->rx_chain.head;
355 if (descr->skb) {
356 pci_unmap_single(card->pdev, descr->hwdescr->buf_addr,
359 dev_kfree_skb(descr->skb);
360 descr->skb = NULL;
362 descr = descr->next;
363 } while (descr != card->rx_chain.head);
369 * @descr: descriptor to re-init
378 struct spider_net_descr *descr)
380 struct spider_net_hw_descr *hwdescr = descr->hwdescr;
392 descr->skb = netdev_alloc_skb(card->netdev,
394 if (!descr->skb) {
407 offset = ((unsigned long)descr->skb->data) &
410 skb_reserve(descr->skb, SPIDER_NET_RXBUF_ALIGN - offset);
412 buf = pci_map_single(card->pdev, descr->skb->data,
415 dev_kfree_skb_any(descr->skb);
416 descr->skb = NULL;
516 struct spider_net_descr *descr = start;
520 descr->prev->hwdescr->next_descr_addr = descr->bus_addr;
521 descr = descr->next;
522 } while (descr != start);
645 struct spider_net_descr *descr;
660 descr = card->tx_chain.head;
661 if (descr->next == chain->tail->prev) {
666 hwdescr = descr->hwdescr;
667 chain->head = descr->next;
669 descr->skb = skb;
689 /* Chain the bus address, so that the DMA engine finds this descr. */
691 descr->prev->hwdescr->next_descr_addr = descr->bus_addr;
700 struct spider_net_descr *descr = card->tx_chain.tail;
709 while (descr != card->tx_chain.head) {
710 status = descr->hwdescr->dmac_cmd_status & SPIDER_NET_DESCR_NOT_IN_USE;
713 descr = descr->next;
722 descr = card->tx_chain.tail;
725 descr = descr->next;
729 descr->hwdescr->dmac_cmd_status |= SPIDER_NET_DESCR_TXDESFLG;
730 if (card->low_watermark && card->low_watermark != descr) {
735 card->low_watermark = descr;
757 struct spider_net_descr *descr;
770 descr = chain->tail;
771 hwdescr = descr->hwdescr;
777 dev->stats.tx_bytes += descr->skb->len;
808 chain->tail = descr->next;
810 skb = descr->skb;
811 descr->skb = NULL;
839 struct spider_net_descr *descr;
845 descr = card->tx_chain.tail;
847 if (spider_net_get_descr_status(descr->hwdescr) ==
850 descr->bus_addr);
855 if (descr == card->tx_chain.head)
857 descr = descr->next;
931 * @descr: descriptor to process
938 spider_net_pass_skb_up(struct spider_net_descr *descr,
941 struct spider_net_hw_descr *hwdescr = descr->hwdescr;
942 struct sk_buff *skb = descr->skb;
980 struct spider_net_descr *descr= start;
993 dev_info(dev, "Chain tail located at descr=%d, status=0x%x\n",
1002 hwd = descr->hwdescr;
1003 off = descr - chain->ring;
1006 if (descr == chain->head)
1010 if (curr_desc == descr->bus_addr)
1014 if (next_desc == descr->bus_addr)
1032 descr = descr->next;
1033 } while (descr != start);
1040 descr = start;
1043 struct spider_net_hw_descr *hwd = descr->hwdescr;
1045 cnt = descr - chain->ring;
1047 cnt, status, descr->skb);
1049 descr->bus_addr, hwd->buf_addr, hwd->buf_size);
1058 descr = descr->next;
1059 } while (descr != start);
1077 struct spider_net_descr *descr;
1081 descr = chain->head;
1082 status = spider_net_get_descr_status(descr->hwdescr);
1089 descr = chain->head;
1090 status = spider_net_get_descr_status(descr->hwdescr);
1093 descr = descr->next;
1094 status = spider_net_get_descr_status(descr->hwdescr);
1096 chain->head = descr;
1104 struct spider_net_descr *descr;
1108 descr = chain->tail;
1109 status = spider_net_get_descr_status(descr->hwdescr);
1114 descr = descr->next;
1115 status = spider_net_get_descr_status(descr->hwdescr);
1117 chain->tail = descr;
1140 struct spider_net_descr *descr = chain->tail;
1141 struct spider_net_hw_descr *hwdescr = descr->hwdescr;
1153 chain->tail = descr->next;
1200 pr_err("which=%ld\n", descr - card->rx_chain.ring);
1206 /* Ok, we've got a packet in descr */
1207 spider_net_pass_skb_up(descr, card);
1208 descr->skb = NULL;
1215 dev_kfree_skb_irq(descr->skb);
1216 descr->skb = NULL;
1471 /* allrighty. tx from previous descr ok */