Lines Matching refs:descr

277 	struct spider_net_descr *descr;  in spider_net_free_chain()  local
279 descr = chain->ring; in spider_net_free_chain()
281 descr->bus_addr = 0; in spider_net_free_chain()
282 descr->hwdescr->next_descr_addr = 0; in spider_net_free_chain()
283 descr = descr->next; in spider_net_free_chain()
284 } while (descr != chain->ring); in spider_net_free_chain()
305 struct spider_net_descr *descr; in spider_net_init_chain() local
318 descr = chain->ring; in spider_net_init_chain()
321 for (i=0; i < chain->num_desc; i++, descr++, hwdescr++) { in spider_net_init_chain()
325 descr->hwdescr = hwdescr; in spider_net_init_chain()
326 descr->bus_addr = buf; in spider_net_init_chain()
327 descr->next = descr + 1; in spider_net_init_chain()
328 descr->prev = descr - 1; in spider_net_init_chain()
333 (descr-1)->next = chain->ring; in spider_net_init_chain()
334 chain->ring->prev = descr-1; in spider_net_init_chain()
351 struct spider_net_descr *descr; in spider_net_free_rx_chain_contents() local
353 descr = card->rx_chain.head; in spider_net_free_rx_chain_contents()
355 if (descr->skb) { in spider_net_free_rx_chain_contents()
356 pci_unmap_single(card->pdev, descr->hwdescr->buf_addr, in spider_net_free_rx_chain_contents()
359 dev_kfree_skb(descr->skb); in spider_net_free_rx_chain_contents()
360 descr->skb = NULL; in spider_net_free_rx_chain_contents()
362 descr = descr->next; in spider_net_free_rx_chain_contents()
363 } while (descr != card->rx_chain.head); in spider_net_free_rx_chain_contents()
378 struct spider_net_descr *descr) in spider_net_prepare_rx_descr() argument
380 struct spider_net_hw_descr *hwdescr = descr->hwdescr; in spider_net_prepare_rx_descr()
392 descr->skb = netdev_alloc_skb(card->netdev, in spider_net_prepare_rx_descr()
394 if (!descr->skb) { in spider_net_prepare_rx_descr()
407 offset = ((unsigned long)descr->skb->data) & in spider_net_prepare_rx_descr()
410 skb_reserve(descr->skb, SPIDER_NET_RXBUF_ALIGN - offset); in spider_net_prepare_rx_descr()
412 buf = pci_map_single(card->pdev, descr->skb->data, in spider_net_prepare_rx_descr()
415 dev_kfree_skb_any(descr->skb); in spider_net_prepare_rx_descr()
416 descr->skb = NULL; in spider_net_prepare_rx_descr()
516 struct spider_net_descr *descr = start; in spider_net_alloc_rx_skbs() local
520 descr->prev->hwdescr->next_descr_addr = descr->bus_addr; in spider_net_alloc_rx_skbs()
521 descr = descr->next; in spider_net_alloc_rx_skbs()
522 } while (descr != start); in spider_net_alloc_rx_skbs()
645 struct spider_net_descr *descr; in spider_net_prepare_tx_descr() local
660 descr = card->tx_chain.head; in spider_net_prepare_tx_descr()
661 if (descr->next == chain->tail->prev) { in spider_net_prepare_tx_descr()
666 hwdescr = descr->hwdescr; in spider_net_prepare_tx_descr()
667 chain->head = descr->next; in spider_net_prepare_tx_descr()
669 descr->skb = skb; in spider_net_prepare_tx_descr()
691 descr->prev->hwdescr->next_descr_addr = descr->bus_addr; in spider_net_prepare_tx_descr()
700 struct spider_net_descr *descr = card->tx_chain.tail; in spider_net_set_low_watermark() local
709 while (descr != card->tx_chain.head) { in spider_net_set_low_watermark()
710 status = descr->hwdescr->dmac_cmd_status & SPIDER_NET_DESCR_NOT_IN_USE; in spider_net_set_low_watermark()
713 descr = descr->next; in spider_net_set_low_watermark()
722 descr = card->tx_chain.tail; in spider_net_set_low_watermark()
725 descr = descr->next; in spider_net_set_low_watermark()
729 descr->hwdescr->dmac_cmd_status |= SPIDER_NET_DESCR_TXDESFLG; in spider_net_set_low_watermark()
730 if (card->low_watermark && card->low_watermark != descr) { in spider_net_set_low_watermark()
735 card->low_watermark = descr; in spider_net_set_low_watermark()
757 struct spider_net_descr *descr; in spider_net_release_tx_chain() local
770 descr = chain->tail; in spider_net_release_tx_chain()
771 hwdescr = descr->hwdescr; in spider_net_release_tx_chain()
777 dev->stats.tx_bytes += descr->skb->len; in spider_net_release_tx_chain()
808 chain->tail = descr->next; in spider_net_release_tx_chain()
810 skb = descr->skb; in spider_net_release_tx_chain()
811 descr->skb = NULL; in spider_net_release_tx_chain()
839 struct spider_net_descr *descr; in spider_net_kick_tx_dma() local
845 descr = card->tx_chain.tail; in spider_net_kick_tx_dma()
847 if (spider_net_get_descr_status(descr->hwdescr) == in spider_net_kick_tx_dma()
850 descr->bus_addr); in spider_net_kick_tx_dma()
855 if (descr == card->tx_chain.head) in spider_net_kick_tx_dma()
857 descr = descr->next; in spider_net_kick_tx_dma()
938 spider_net_pass_skb_up(struct spider_net_descr *descr, in spider_net_pass_skb_up() argument
941 struct spider_net_hw_descr *hwdescr = descr->hwdescr; in spider_net_pass_skb_up()
942 struct sk_buff *skb = descr->skb; in spider_net_pass_skb_up()
980 struct spider_net_descr *descr= start; in show_rx_chain() local
1002 hwd = descr->hwdescr; in show_rx_chain()
1003 off = descr - chain->ring; in show_rx_chain()
1006 if (descr == chain->head) in show_rx_chain()
1010 if (curr_desc == descr->bus_addr) in show_rx_chain()
1014 if (next_desc == descr->bus_addr) in show_rx_chain()
1032 descr = descr->next; in show_rx_chain()
1033 } while (descr != start); in show_rx_chain()
1040 descr = start; in show_rx_chain()
1043 struct spider_net_hw_descr *hwd = descr->hwdescr; in show_rx_chain()
1045 cnt = descr - chain->ring; in show_rx_chain()
1047 cnt, status, descr->skb); in show_rx_chain()
1049 descr->bus_addr, hwd->buf_addr, hwd->buf_size); in show_rx_chain()
1058 descr = descr->next; in show_rx_chain()
1059 } while (descr != start); in show_rx_chain()
1077 struct spider_net_descr *descr; in spider_net_resync_head_ptr() local
1081 descr = chain->head; in spider_net_resync_head_ptr()
1082 status = spider_net_get_descr_status(descr->hwdescr); in spider_net_resync_head_ptr()
1089 descr = chain->head; in spider_net_resync_head_ptr()
1090 status = spider_net_get_descr_status(descr->hwdescr); in spider_net_resync_head_ptr()
1093 descr = descr->next; in spider_net_resync_head_ptr()
1094 status = spider_net_get_descr_status(descr->hwdescr); in spider_net_resync_head_ptr()
1096 chain->head = descr; in spider_net_resync_head_ptr()
1104 struct spider_net_descr *descr; in spider_net_resync_tail_ptr() local
1108 descr = chain->tail; in spider_net_resync_tail_ptr()
1109 status = spider_net_get_descr_status(descr->hwdescr); in spider_net_resync_tail_ptr()
1114 descr = descr->next; in spider_net_resync_tail_ptr()
1115 status = spider_net_get_descr_status(descr->hwdescr); in spider_net_resync_tail_ptr()
1117 chain->tail = descr; in spider_net_resync_tail_ptr()
1140 struct spider_net_descr *descr = chain->tail; in spider_net_decode_one_descr() local
1141 struct spider_net_hw_descr *hwdescr = descr->hwdescr; in spider_net_decode_one_descr()
1153 chain->tail = descr->next; in spider_net_decode_one_descr()
1200 pr_err("which=%ld\n", descr - card->rx_chain.ring); in spider_net_decode_one_descr()
1207 spider_net_pass_skb_up(descr, card); in spider_net_decode_one_descr()
1208 descr->skb = NULL; in spider_net_decode_one_descr()
1215 dev_kfree_skb_irq(descr->skb); in spider_net_decode_one_descr()
1216 descr->skb = NULL; in spider_net_decode_one_descr()