iwlwifi: move rx queue read pointer into rxq

This patch moves rx status/read registers into
iwl_rx_queue structures. This solution is more memory
hungry but is more structured and provides needed RX/TX
separation

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Winkler, Tomas
2008-11-07 09:58:39 -08:00
committed by John W. Linville
parent 5c5aa3f13a
commit 8d86422a83
9 changed files with 37 additions and 83 deletions

View File

@@ -301,7 +301,6 @@ struct iwl_host_cmd {
/**
* struct iwl_rx_queue - Rx queue
* @processed: Internal index to last handled Rx packet
* @read: Shared index to newest available Rx buffer
* @write: Shared index to oldest written Rx packet
* @free_count: Number of pre-allocated buffers in rx_free
@@ -316,13 +315,14 @@ struct iwl_rx_queue {
dma_addr_t dma_addr;
struct iwl_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS];
struct iwl_rx_mem_buffer *queue[RX_QUEUE_SIZE];
u32 processed;
u32 read;
u32 write;
u32 free_count;
struct list_head rx_free;
struct list_head rx_used;
int need_update;
struct iwl_rb_status *rb_stts;
dma_addr_t rb_stts_dma;
spinlock_t lock;
};
@@ -967,10 +967,9 @@ struct iwl_priv {
struct ieee80211_vif *vif;
struct iwl_hw_params hw_params;
/* driver/uCode shared Tx Byte Counts and Rx status */
/* driver/uCode shared Tx Byte Counts */
void *shared_virt;
int rb_closed_offset;
/* Physical Pointer to Tx Byte Counts and Rx status */
/* Physical Pointer to Tx Byte Counts */
dma_addr_t shared_phys;
/* Current association information needed to configure the