Lines Matching refs:rx

416 struct rx {
417 struct rx *next, *prev;
544 struct rx *rxs ____cacheline_aligned;
545 struct rx *rx_to_use;
546 struct rx *rx_to_clean;
1901 static inline void e100_start_receiver(struct nic *nic, struct rx *rx)
1907 if (!rx) rx = nic->rxs;
1910 if (rx->skb) {
1911 e100_exec_cmd(nic, ruc_start, rx->dma_addr);
1917 static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
1919 if (!(rx->skb = netdev_alloc_skb_ip_align(nic->netdev, RFD_BUF_LEN)))
1923 skb_copy_to_linear_data(rx->skb, &nic->blank_rfd, sizeof(struct rfd));
1924 rx->dma_addr = dma_map_single(&nic->pdev->dev, rx->skb->data,
1927 if (dma_mapping_error(&nic->pdev->dev, rx->dma_addr)) {
1928 dev_kfree_skb_any(rx->skb);
1929 rx->skb = NULL;
1930 rx->dma_addr = 0;
1937 if (rx->prev->skb) {
1938 struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data;
1939 put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
1941 rx->prev->dma_addr,
1949 static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1953 struct sk_buff *skb = rx->skb;
1962 dma_sync_single_for_cpu(&nic->pdev->dev, rx->dma_addr,
1982 dma_sync_single_for_device(&nic->pdev->dev, rx->dma_addr,
1996 dma_unmap_single(&nic->pdev->dev, rx->dma_addr, RFD_BUF_LEN,
2043 rx->skb = NULL;
2051 struct rx *rx;
2053 struct rx *old_before_last_rx, *new_before_last_rx;
2057 for (rx = nic->rx_to_clean; rx->skb; rx = nic->rx_to_clean = rx->next) {
2058 err = e100_rx_indicate(nic, rx, work_done, work_to_do);
2078 for (rx = nic->rx_to_use; !rx->skb; rx = nic->rx_to_use = rx->next) {
2079 if (unlikely(e100_rx_alloc_skb(nic, rx)))
2130 struct rx *rx;
2136 for (rx = nic->rxs, i = 0; i < count; rx++, i++) {
2137 if (rx->skb) {
2139 rx->dma_addr, RFD_BUF_LEN,
2141 dev_kfree_skb(rx->skb);
2153 struct rx *rx;
2160 if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_KERNEL)))
2163 for (rx = nic->rxs, i = 0; i < count; rx++, i++) {
2164 rx->next = (i + 1 < count) ? rx + 1 : nic->rxs;
2165 rx->prev = (i == 0) ? nic->rxs + count - 1 : rx - 1;
2166 if (e100_rx_alloc_skb(nic, rx)) {
2178 rx = nic->rxs->prev->prev;
2179 before_last = (struct rfd *)rx->skb->data;
2182 dma_sync_single_for_device(&nic->pdev->dev, rx->dma_addr,
2588 netif_info(nic, drv, nic->netdev, "Ring Param settings: rx: %d, tx %d\n",
2894 /* D100 MAC doesn't allow rx of vlan packets with normal MTU */