greth.c (8decf868790b48a727d7e7ca164f2bcd3c1389c0) | greth.c (9e903e085262ffbf1fc44a17ac06058aca03524a) |
---|---|
1/* 2 * Aeroflex Gaisler GRETH 10/100/1G Ethernet MAC. 3 * 4 * 2005-2010 (c) Aeroflex Gaisler AB 5 * 6 * This driver supports GRETH 10/100 and GRETH 10/100/1G Ethernet MACs 7 * available in the GRLIB VHDL IP core library. 8 * --- 184 unchanged lines hidden (view full) --- 193 DMA_TO_DEVICE); 194 195 for (i = 0; i < nr_frags; i++) { 196 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 197 tx_bdp = greth->tx_bd_base + greth->tx_last; 198 199 dma_unmap_page(greth->dev, 200 greth_read_bd(&tx_bdp->addr), | 1/* 2 * Aeroflex Gaisler GRETH 10/100/1G Ethernet MAC. 3 * 4 * 2005-2010 (c) Aeroflex Gaisler AB 5 * 6 * This driver supports GRETH 10/100 and GRETH 10/100/1G Ethernet MACs 7 * available in the GRLIB VHDL IP core library. 8 * --- 184 unchanged lines hidden (view full) --- 193 DMA_TO_DEVICE); 194 195 for (i = 0; i < nr_frags; i++) { 196 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 197 tx_bdp = greth->tx_bd_base + greth->tx_last; 198 199 dma_unmap_page(greth->dev, 200 greth_read_bd(&tx_bdp->addr), |
201 frag->size, | 201 skb_frag_size(frag), |
202 DMA_TO_DEVICE); 203 204 greth->tx_last = NEXT_TX(greth->tx_last); 205 } 206 greth->tx_free += nr_frags+1; 207 dev_kfree_skb(skb); 208 } 209 --- 302 unchanged lines hidden (view full) --- 512 for (i = 0; i < nr_frags; i++) { 513 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 514 greth->tx_skbuff[curr_tx] = NULL; 515 bdp = greth->tx_bd_base + curr_tx; 516 517 status = GRETH_BD_EN; 518 if (skb->ip_summed == CHECKSUM_PARTIAL) 519 status |= GRETH_TXBD_CSALL; | 202 DMA_TO_DEVICE); 203 204 greth->tx_last = NEXT_TX(greth->tx_last); 205 } 206 greth->tx_free += nr_frags+1; 207 dev_kfree_skb(skb); 208 } 209 --- 302 unchanged lines hidden (view full) --- 512 for (i = 0; i < nr_frags; i++) { 513 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 514 greth->tx_skbuff[curr_tx] = NULL; 515 bdp = greth->tx_bd_base + curr_tx; 516 517 status = GRETH_BD_EN; 518 if (skb->ip_summed == CHECKSUM_PARTIAL) 519 status |= GRETH_TXBD_CSALL; |
520 status |= frag->size & GRETH_BD_LEN; | 520 status |= skb_frag_size(frag) & GRETH_BD_LEN; |
521 522 /* Wrap around descriptor ring */ 523 if (curr_tx == GRETH_TXBD_NUM_MASK) 524 status |= GRETH_BD_WR; 525 526 /* More fragments left */ 527 if (i < nr_frags - 1) 528 status |= GRETH_TXBD_MORE; 529 else 530 status |= GRETH_BD_IE; /* enable IRQ on last fragment */ 531 532 greth_write_bd(&bdp->stat, status); 533 | 521 522 /* Wrap around descriptor ring */ 523 if (curr_tx == GRETH_TXBD_NUM_MASK) 524 status |= GRETH_BD_WR; 525 526 /* More fragments left */ 527 if (i < nr_frags - 1) 528 status |= GRETH_TXBD_MORE; 529 else 530 status |= GRETH_BD_IE; /* enable IRQ on last fragment */ 531 532 greth_write_bd(&bdp->stat, status); 533 |
534 dma_addr = skb_frag_dma_map(greth->dev, frag, 0, frag->size, | 534 dma_addr = skb_frag_dma_map(greth->dev, frag, 0, skb_frag_size(frag), |
535 DMA_TO_DEVICE); 536 537 if (unlikely(dma_mapping_error(greth->dev, dma_addr))) 538 goto frag_map_error; 539 540 greth_write_bd(&bdp->addr, dma_addr); 541 542 curr_tx = NEXT_TX(curr_tx); --- 165 unchanged lines hidden (view full) --- 708 DMA_TO_DEVICE); 709 710 for (i = 0; i < nr_frags; i++) { 711 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 712 bdp = greth->tx_bd_base + greth->tx_last; 713 714 dma_unmap_page(greth->dev, 715 greth_read_bd(&bdp->addr), | 535 DMA_TO_DEVICE); 536 537 if (unlikely(dma_mapping_error(greth->dev, dma_addr))) 538 goto frag_map_error; 539 540 greth_write_bd(&bdp->addr, dma_addr); 541 542 curr_tx = NEXT_TX(curr_tx); --- 165 unchanged lines hidden (view full) --- 708 DMA_TO_DEVICE); 709 710 for (i = 0; i < nr_frags; i++) { 711 skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 712 bdp = greth->tx_bd_base + greth->tx_last; 713 714 dma_unmap_page(greth->dev, 715 greth_read_bd(&bdp->addr), |
716 frag->size, | 716 skb_frag_size(frag), |
717 DMA_TO_DEVICE); 718 719 greth->tx_last = NEXT_TX(greth->tx_last); 720 } 721 greth->tx_free += nr_frags+1; 722 dev_kfree_skb(skb); 723 } 724 --- 917 unchanged lines hidden --- | 717 DMA_TO_DEVICE); 718 719 greth->tx_last = NEXT_TX(greth->tx_last); 720 } 721 greth->tx_free += nr_frags+1; 722 dev_kfree_skb(skb); 723 } 724 --- 917 unchanged lines hidden --- |