ar71xx: improve ethernet driver cache footprint by removing an unnecessary pointer
[openwrt/openwrt.git] / target / linux / ar71xx / files / drivers / net / ethernet / atheros / ag71xx / ag71xx.h
index 9fb10fd8981e649af7c0b8543369b6a63dc91afc..b18c20b6ddf8922812de3790a2622c33197a5785 100644 (file)
@@ -52,7 +52,7 @@
 
 #define AG71XX_TX_MTU_LEN      1540
 
-#define AG71XX_TX_RING_SPLIT           256
+#define AG71XX_TX_RING_SPLIT           512
 #define AG71XX_TX_RING_DS_PER_PKT      DIV_ROUND_UP(AG71XX_TX_MTU_LEN, \
                                                     AG71XX_TX_RING_SPLIT)
 #define AG71XX_TX_RING_SIZE_DEFAULT    48
@@ -90,7 +90,6 @@ struct ag71xx_buf {
                struct sk_buff  *skb;
                void            *rx_buf;
        };
-       struct ag71xx_desc      *desc;
        union {
                dma_addr_t      dma_addr;
                unsigned long   timestamp;
@@ -203,6 +202,12 @@ static inline int ag71xx_desc_empty(struct ag71xx_desc *desc)
        return (desc->ctrl & DESC_EMPTY) != 0;
 }
 
+static inline struct ag71xx_desc *
+ag71xx_ring_desc(struct ag71xx_ring *ring, int idx)
+{
+       return (struct ag71xx_desc *) &ring->descs_cpu[idx * ring->desc_size];
+}
+
 /* Register offsets */
 #define AG71XX_REG_MAC_CFG1    0x0000
 #define AG71XX_REG_MAC_CFG2    0x0004