Commit fc9e4d2a authored by Olof Johansson's avatar Olof Johansson Committed by David S. Miller

pasemi_mac: rework ring management

pasemi_mac: rework ring management

Rework ring management, switching to an opaque ring format instead of
the struct-based descriptor+pointer setup, since it will be needed for
SG support.
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 18eec695
This diff is collapsed.
...@@ -28,25 +28,25 @@ ...@@ -28,25 +28,25 @@
struct pasemi_mac_txring { struct pasemi_mac_txring {
spinlock_t lock; spinlock_t lock;
struct pas_dma_xct_descr *desc; u64 *ring;
dma_addr_t dma; dma_addr_t dma;
unsigned int size; unsigned int size;
unsigned int next_to_fill; unsigned int next_to_fill;
unsigned int next_to_clean; unsigned int next_to_clean;
struct pasemi_mac_buffer *desc_info; struct pasemi_mac_buffer *ring_info;
char irq_name[10]; /* "eth%d tx" */ char irq_name[10]; /* "eth%d tx" */
}; };
struct pasemi_mac_rxring { struct pasemi_mac_rxring {
spinlock_t lock; spinlock_t lock;
struct pas_dma_xct_descr *desc; /* RX channel descriptor ring */ u64 *ring; /* RX channel descriptor ring */
dma_addr_t dma; dma_addr_t dma;
u64 *buffers; /* RX interface buffer ring */ u64 *buffers; /* RX interface buffer ring */
dma_addr_t buf_dma; dma_addr_t buf_dma;
unsigned int size; unsigned int size;
unsigned int next_to_fill; unsigned int next_to_fill;
unsigned int next_to_clean; unsigned int next_to_clean;
struct pasemi_mac_buffer *desc_info; struct pasemi_mac_buffer *ring_info;
char irq_name[10]; /* "eth%d rx" */ char irq_name[10]; /* "eth%d rx" */
}; };
...@@ -88,7 +88,7 @@ struct pasemi_mac { ...@@ -88,7 +88,7 @@ struct pasemi_mac {
char phy_id[BUS_ID_SIZE]; char phy_id[BUS_ID_SIZE];
}; };
/* Software status descriptor (desc_info) */ /* Software status descriptor (ring_info) */
struct pasemi_mac_buffer { struct pasemi_mac_buffer {
struct sk_buff *skb; struct sk_buff *skb;
dma_addr_t dma; dma_addr_t dma;
...@@ -101,20 +101,7 @@ struct pasdma_status { ...@@ -101,20 +101,7 @@ struct pasdma_status {
u64 tx_sta[20]; u64 tx_sta[20];
}; };
/* descriptor structure */
struct pas_dma_xct_descr {
union {
u64 mactx;
u64 macrx;
};
union {
u64 ptr;
u64 rxb;
};
};
/* MAC CFG register offsets */ /* MAC CFG register offsets */
enum { enum {
PAS_MAC_CFG_PCFG = 0x80, PAS_MAC_CFG_PCFG = 0x80,
PAS_MAC_CFG_TXP = 0x98, PAS_MAC_CFG_TXP = 0x98,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment