Lines Matching defs:slot
114 struct bgmac_slot_info *slot;
123 slot = &ring->slots[i];
125 dma_desc->addr_low = cpu_to_le32(lower_32_bits(slot->dma_addr));
126 dma_desc->addr_high = cpu_to_le32(upper_32_bits(slot->dma_addr));
138 struct bgmac_slot_info *slot = &ring->slots[index];
162 slot->dma_addr = dma_map_single(dma_dev, skb->data, skb_headlen(skb),
164 if (unlikely(dma_mapping_error(dma_dev, slot->dma_addr)))
179 slot = &ring->slots[index];
180 slot->dma_addr = skb_frag_dma_map(dma_dev, frag, 0,
182 if (unlikely(dma_mapping_error(dma_dev, slot->dma_addr)))
191 slot->skb = skb;
197 /* Increase ring->end to point empty slot. We tell hardware the first
198 * slot it should *not* read.
211 dma_unmap_single(dma_dev, slot->dma_addr, skb_headlen(skb),
216 struct bgmac_slot_info *slot = &ring->slots[index];
220 dma_unmap_page(dma_dev, slot->dma_addr, len, DMA_TO_DEVICE);
241 /* The last slot that hardware didn't consume yet */
250 struct bgmac_slot_info *slot = &ring->slots[slot_idx];
262 dma_unmap_single(dma_dev, slot->dma_addr, len,
265 dma_unmap_page(dma_dev, slot->dma_addr, len,
268 if (slot->skb) {
269 bgmac->net_dev->stats.tx_bytes += slot->skb->len;
271 bytes_compl += slot->skb->len;
275 dev_kfree_skb(slot->skb);
276 slot->skb = NULL;
279 slot->dma_addr = 0;
334 struct bgmac_slot_info *slot)
360 /* Update the slot */
361 slot->buf = buf;
362 slot->dma_addr = dma_addr;
400 struct bgmac_slot_info *slot)
402 struct bgmac_rx_header *rx = slot->buf + BGMAC_RX_BUF_OFFSET;
404 dma_sync_single_for_cpu(dma_dev, slot->dma_addr, BGMAC_RX_BUF_SIZE,
408 dma_sync_single_for_device(dma_dev, slot->dma_addr, BGMAC_RX_BUF_SIZE,
426 struct bgmac_slot_info *slot = &ring->slots[ring->start];
427 struct bgmac_rx_header *rx = slot->buf + BGMAC_RX_BUF_OFFSET;
429 void *buf = slot->buf;
430 dma_addr_t dma_addr = slot->dma_addr;
435 if (bgmac_dma_rx_skb_for_slot(bgmac, slot)) {
436 bgmac_dma_rx_poison_buf(dma_dev, slot);
450 netdev_err(bgmac->net_dev, "Found poisoned packet at slot %d, DMA issue!\n",
458 netdev_err(bgmac->net_dev, "Found oversized packet at slot %d, DMA issue!\n",
530 struct bgmac_slot_info *slot;
537 slot = &ring->slots[i];
538 dev_kfree_skb(slot->skb);
540 if (!slot->dma_addr)
543 if (slot->skb)
544 dma_unmap_single(dma_dev, slot->dma_addr,
547 dma_unmap_page(dma_dev, slot->dma_addr,
556 struct bgmac_slot_info *slot;
560 slot = &ring->slots[i];
561 if (!slot->dma_addr)
564 dma_unmap_single(dma_dev, slot->dma_addr,
567 put_page(virt_to_head_page(slot->buf));
568 slot->dma_addr = 0;
704 ring->end = 0; /* Points the slot that should *not* be read */