Changeset 30445


Ignore:
Timestamp:
2012-02-11T16:12:02+01:00 (6 years ago)
Author:
juhosg
Message:

ramips: raeth: add rx_dma array to store the DMA address of the rx packets

Location:
trunk/target/linux/ramips/files/drivers/net
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ramips/files/drivers/net/ramips.c

    r30444 r30445  
    173173        memset(re->rx, 0, sizeof(struct ramips_rx_dma) * NUM_RX_DESC); 
    174174        for (i = 0; i < NUM_RX_DESC; i++) { 
     175                dma_addr_t dma_addr; 
    175176                struct sk_buff *new_skb = dev_alloc_skb(MAX_RX_LENGTH + 
    176177                                                        NET_IP_ALIGN); 
     
    180181 
    181182                skb_reserve(new_skb, NET_IP_ALIGN); 
    182                 re->rx[i].rxd1 = dma_map_single(NULL, 
    183                                                 new_skb->data, 
    184                                                 MAX_RX_LENGTH, 
    185                                                 DMA_FROM_DEVICE); 
     183 
     184                dma_addr = dma_map_single(NULL, new_skb->data, 
     185                                          MAX_RX_LENGTH, DMA_FROM_DEVICE); 
     186                re->rx_dma[i] = dma_addr; 
     187                re->rx[i].rxd1 = (unsigned int) re->rx_dma[i]; 
    186188                re->rx[i].rxd2 |= RX_DMA_LSO; 
    187189                re->rx_skb[i] = new_skb; 
     
    283285                /* Reuse the buffer on allocation failures */ 
    284286                if (new_skb) { 
    285                         /* TODO: convert to use dma_addr_t */ 
    286                         dma_unmap_single(NULL, priv->rx[rx].rxd1, MAX_RX_LENGTH, 
     287                        dma_addr_t dma_addr; 
     288 
     289                        dma_unmap_single(NULL, priv->rx_dma[rx], MAX_RX_LENGTH, 
    287290                                         DMA_FROM_DEVICE); 
    288291 
     
    297300                        priv->rx_skb[rx] = new_skb; 
    298301                        skb_reserve(new_skb, NET_IP_ALIGN); 
    299                         priv->rx[rx].rxd1 = dma_map_single(NULL, 
    300                                                            new_skb->data, 
    301                                                            MAX_RX_LENGTH, 
    302                                                            DMA_FROM_DEVICE); 
     302 
     303                        dma_addr = dma_map_single(NULL, 
     304                                                  new_skb->data, 
     305                                                  MAX_RX_LENGTH, 
     306                                                  DMA_FROM_DEVICE); 
     307                        priv->rx_dma[rx] = dma_addr; 
     308                        priv->rx[rx].rxd1 = (unsigned int) dma_addr; 
    303309                } else { 
    304310                        dev->stats.rx_dropped++; 
  • trunk/target/linux/ramips/files/drivers/net/ramips_eth.h

    r30444 r30445  
    220220        struct ramips_rx_dma    *rx; 
    221221        struct sk_buff          *rx_skb[NUM_RX_DESC]; 
     222        dma_addr_t              rx_dma[NUM_RX_DESC]; 
    222223 
    223224        dma_addr_t              tx_desc_dma; 
Note: See TracChangeset for help on using the changeset viewer.