via-velocity: separated struct allow wholesale copy during MTU changes.
It should help people fix the bugs in my code :o) Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
@@ -1494,6 +1494,10 @@ struct velocity_opt {
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
#define AVAIL_TD(p,q) ((p)->options.numtx-((p)->tx.used[(q)]))
|
||||
|
||||
#define GET_RD_BY_IDX(vptr, idx) (vptr->rd_ring[idx])
|
||||
|
||||
struct velocity_info {
|
||||
struct list_head list;
|
||||
|
||||
@@ -1501,9 +1505,6 @@ struct velocity_info {
|
||||
struct net_device *dev;
|
||||
struct net_device_stats stats;
|
||||
|
||||
dma_addr_t rd_pool_dma;
|
||||
dma_addr_t td_pool_dma[TX_QUEUE_NO];
|
||||
|
||||
struct vlan_group *vlgrp;
|
||||
u8 ip_addr[4];
|
||||
enum chip_type chip_id;
|
||||
@@ -1512,25 +1513,29 @@ struct velocity_info {
|
||||
unsigned long memaddr;
|
||||
unsigned long ioaddr;
|
||||
|
||||
u8 rev_id;
|
||||
struct tx_info {
|
||||
int numq;
|
||||
|
||||
#define AVAIL_TD(p,q) ((p)->options.numtx-((p)->td_used[(q)]))
|
||||
/* FIXME: the locality of the data seems rather poor. */
|
||||
int used[TX_QUEUE_NO];
|
||||
int curr[TX_QUEUE_NO];
|
||||
int tail[TX_QUEUE_NO];
|
||||
struct tx_desc *rings[TX_QUEUE_NO];
|
||||
struct velocity_td_info *infos[TX_QUEUE_NO];
|
||||
dma_addr_t pool_dma[TX_QUEUE_NO];
|
||||
} tx;
|
||||
|
||||
int num_txq;
|
||||
struct rx_info {
|
||||
int buf_sz;
|
||||
|
||||
volatile int td_used[TX_QUEUE_NO];
|
||||
int td_curr[TX_QUEUE_NO];
|
||||
int td_tail[TX_QUEUE_NO];
|
||||
struct tx_desc *td_rings[TX_QUEUE_NO];
|
||||
struct velocity_td_info *td_infos[TX_QUEUE_NO];
|
||||
int dirty;
|
||||
int curr;
|
||||
u32 filled;
|
||||
struct rx_desc *ring;
|
||||
struct velocity_rd_info *info; /* It's an array */
|
||||
dma_addr_t pool_dma;
|
||||
} rx;
|
||||
|
||||
int rd_curr;
|
||||
int rd_dirty;
|
||||
u32 rd_filled;
|
||||
struct rx_desc *rd_ring;
|
||||
struct velocity_rd_info *rd_info; /* It's an array */
|
||||
|
||||
#define GET_RD_BY_IDX(vptr, idx) (vptr->rd_ring[idx])
|
||||
u32 mib_counter[MAX_HW_MIB_COUNTER];
|
||||
struct velocity_opt options;
|
||||
|
||||
@@ -1538,7 +1543,6 @@ struct velocity_info {
|
||||
|
||||
u32 flags;
|
||||
|
||||
int rx_buf_sz;
|
||||
u32 mii_status;
|
||||
u32 phy_id;
|
||||
int multicast_limit;
|
||||
@@ -1554,8 +1558,8 @@ struct velocity_info {
|
||||
struct velocity_context context;
|
||||
|
||||
u32 ticks;
|
||||
u32 rx_bytes;
|
||||
|
||||
u8 rev_id;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user