• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/infiniband/hw/amso1100/

Lines Matching refs:elem

118 	struct c2_element *elem;
121 tx_ring->start = kmalloc(sizeof(*elem) * tx_ring->count, GFP_KERNEL);
125 elem = tx_ring->start;
128 for (i = 0; i < tx_ring->count; i++, elem++, tx_desc++, txp_desc++) {
139 elem->skb = NULL;
140 elem->ht_desc = tx_desc;
141 elem->hw_desc = txp_desc;
144 elem->next = tx_ring->start;
147 elem->next = elem + 1;
167 struct c2_element *elem;
170 rx_ring->start = kmalloc(sizeof(*elem) * rx_ring->count, GFP_KERNEL);
174 elem = rx_ring->start;
177 for (i = 0; i < rx_ring->count; i++, elem++, rx_desc++, rxp_desc++) {
191 elem->skb = NULL;
192 elem->ht_desc = rx_desc;
193 elem->hw_desc = rxp_desc;
196 elem->next = rx_ring->start;
199 elem->next = elem + 1;
211 static inline int c2_rx_alloc(struct c2_port *c2_port, struct c2_element *elem)
214 struct c2_rx_desc *rx_desc = elem->ht_desc;
241 __raw_writew(0, elem->hw_desc + C2_RXP_STATUS);
243 elem->hw_desc + C2_RXP_LEN);
244 __raw_writeq(cpu_to_be64(mapaddr), elem->hw_desc + C2_RXP_ADDR);
245 __raw_writew(cpu_to_be16(RXP_HRXD_READY), elem->hw_desc + C2_RXP_FLAGS);
247 elem->skb = skb;
248 elem->mapaddr = mapaddr;
249 elem->maplen = maplen;
262 struct c2_element *elem;
265 elem = rx_ring->start;
267 if (c2_rx_alloc(c2_port, elem)) {
271 } while ((elem = elem->next) != rx_ring->start);
282 struct c2_element *elem;
285 elem = rx_ring->start;
287 rx_desc = elem->ht_desc;
290 __raw_writew(0, elem->hw_desc + C2_RXP_STATUS);
291 __raw_writew(0, elem->hw_desc + C2_RXP_COUNT);
292 __raw_writew(0, elem->hw_desc + C2_RXP_LEN);
294 elem->hw_desc + C2_RXP_ADDR);
296 elem->hw_desc + C2_RXP_FLAGS);
298 if (elem->skb) {
299 pci_unmap_single(c2dev->pcidev, elem->mapaddr,
300 elem->maplen, PCI_DMA_FROMDEVICE);
301 dev_kfree_skb(elem->skb);
302 elem->skb = NULL;
304 } while ((elem = elem->next) != rx_ring->start);
307 static inline int c2_tx_free(struct c2_dev *c2dev, struct c2_element *elem)
309 struct c2_tx_desc *tx_desc = elem->ht_desc;
313 pci_unmap_single(c2dev->pcidev, elem->mapaddr, elem->maplen,
316 if (elem->skb) {
317 dev_kfree_skb_any(elem->skb);
318 elem->skb = NULL;
328 struct c2_element *elem;
335 elem = tx_ring->start;
341 readw(elem->hw_desc + C2_TXP_FLAGS);
346 elem->hw_desc + C2_TXP_LEN);
348 elem->hw_desc + C2_TXP_ADDR);
350 elem->hw_desc + C2_TXP_FLAGS);
355 elem->hw_desc + C2_TXP_LEN);
357 elem->hw_desc + C2_TXP_ADDR);
359 elem->hw_desc + C2_TXP_FLAGS);
362 c2_tx_free(c2_port->c2dev, elem);
364 } while ((elem = elem->next) != tx_ring->start);
385 struct c2_element *elem;
390 for (elem = tx_ring->to_clean; elem != tx_ring->to_use;
391 elem = elem->next) {
393 be16_to_cpu(readw(elem->hw_desc + C2_TXP_FLAGS));
401 be16_to_cpu(readw(elem->hw_desc + C2_TXP_LEN));
404 netdev->name, elem - tx_ring->start,
408 c2_tx_free(c2dev, elem);
412 tx_ring->to_clean = elem;
421 static void c2_rx_error(struct c2_port *c2_port, struct c2_element *elem)
423 struct c2_rx_desc *rx_desc = elem->ht_desc;
424 struct c2_rxp_hdr *rxp_hdr = (struct c2_rxp_hdr *) elem->skb->data;
431 elem - c2_port->rx_ring.start);
442 elem->skb->data = elem->skb->head;
443 skb_reset_tail_pointer(elem->skb);
446 memset(elem->skb->data, 0, sizeof(*rxp_hdr));
449 __raw_writew(0, elem->hw_desc + C2_RXP_STATUS);
450 __raw_writew(0, elem->hw_desc + C2_RXP_COUNT);
451 __raw_writew(cpu_to_be16((u16) elem->maplen - sizeof(*rxp_hdr)),
452 elem->hw_desc + C2_RXP_LEN);
453 __raw_writeq(cpu_to_be64(elem->mapaddr), elem->hw_desc + C2_RXP_ADDR);
454 __raw_writew(cpu_to_be16(RXP_HRXD_READY), elem->hw_desc + C2_RXP_FLAGS);
465 struct c2_element *elem;
478 for (elem = rx_ring->to_clean; elem->next != rx_ring->to_clean;
479 elem = elem->next) {
480 rx_desc = elem->ht_desc;
481 mapaddr = elem->mapaddr;
482 maplen = elem->maplen;
483 skb = elem->skb;
493 c2_rx_error(c2_port, elem);
501 if (c2_rx_alloc(c2_port, elem)) {
502 c2_rx_error(c2_port, elem);
537 rx_ring->to_clean = elem;
538 c2dev->cur_rx = elem - rx_ring->start;
589 struct c2_element *elem;
652 for (i = 0, elem = c2_port->rx_ring.start; i < c2_port->rx_ring.count;
653 i++, elem++) {
654 rxp_hdr = (struct c2_rxp_hdr *) elem->skb->data;
657 elem->hw_desc + C2_RXP_FLAGS);
763 struct c2_element *elem;
784 elem = tx_ring->to_use;
785 elem->skb = skb;
786 elem->mapaddr = mapaddr;
787 elem->maplen = maplen;
790 __raw_writeq(cpu_to_be64(mapaddr), elem->hw_desc + C2_TXP_ADDR);
791 __raw_writew(cpu_to_be16(maplen), elem->hw_desc + C2_TXP_LEN);
792 __raw_writew(cpu_to_be16(TXP_HTXD_READY), elem->hw_desc + C2_TXP_FLAGS);
807 elem = elem->next;
808 elem->skb = NULL;
809 elem->mapaddr = mapaddr;
810 elem->maplen = maplen;
814 elem->hw_desc + C2_TXP_ADDR);
816 elem->hw_desc + C2_TXP_LEN);
818 elem->hw_desc + C2_TXP_FLAGS);
825 tx_ring->to_use = elem->next;