Spidernet DMA coalescing
[linux-3.10.git] / drivers / net / spider_net.h
index 3e196df29790dcd50795c6872bb64e5e7d08389d..4b76ef9524d17a4ff2f1366a8d4a694de8b07a9e 100644 (file)
@@ -378,6 +378,9 @@ struct spider_net_descr_chain {
        spinlock_t lock;
        struct spider_net_descr *head;
        struct spider_net_descr *tail;
+       struct spider_net_descr *ring;
+       int num_desc;
+       dma_addr_t dma_addr;
 };
 
 /* descriptor data_status bits */
@@ -397,8 +400,6 @@ struct spider_net_descr_chain {
  * 701b8000 would be correct, but every packets gets that flag */
 #define SPIDER_NET_DESTROY_RX_FLAGS    0x700b8000
 
-#define SPIDER_NET_DESCR_SIZE          32
-
 /* this will be bigger some time */
 struct spider_net_options {
        int rx_csum; /* for rx: if 0 ip_summed=NONE,
@@ -441,25 +442,17 @@ struct spider_net_card {
        struct spider_net_descr_chain rx_chain;
        struct spider_net_descr *low_watermark;
 
-       struct net_device_stats netdev_stats;
-
-       struct spider_net_options options;
-
-       spinlock_t intmask_lock;
        struct tasklet_struct rxram_full_tl;
        struct timer_list tx_timer;
-
        struct work_struct tx_timeout_task;
        atomic_t tx_timeout_task_counter;
        wait_queue_head_t waitq;
 
        /* for ethtool */
        int msg_enable;
-       int num_rx_desc;
-       int num_tx_desc;
+       struct net_device_stats netdev_stats;
        struct spider_net_extra_stats spider_stats;
-
-       struct spider_net_descr descr[0];
+       struct spider_net_options options;
 };
 
 #define pr_err(fmt,arg...) \