aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
diff options
context:
space:
mode:
authorBen Cahill <ben.m.cahill@intel.com>2007-11-28 22:10:03 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:05:28 -0500
commitaad141433b630e3e28bab1e27606a688b22dbcc1 (patch)
tree461f8a983c3609c25551191558ca8ac7833c589d /drivers/net/wireless/iwlwifi/iwl-4965-hw.h
parent0c434c5a7f9983c8ee3c8943924db8c5fb1d12bd (diff)
iwlwifi: document keep-warm buffer
Document keep-warm buffer Consolidate flow handler address definitions Signed-off-by: Ben Cahill <ben.m.cahill@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965-hw.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-hw.h39
1 files changed, 28 insertions, 11 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
index 4a2fa80acff7..8698bf77fd0b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
@@ -1282,20 +1282,37 @@ enum {
1282 1282
1283/********************* END TXPOWER *****************************************/ 1283/********************* END TXPOWER *****************************************/
1284 1284
1285/****************************/
1285/* Flow Handler Definitions */ 1286/* Flow Handler Definitions */
1287/****************************/
1286 1288
1287/**********************/ 1289/*
1288/* Addresses */ 1290 * This I/O area is directly read/writable by driver (e.g. Linux uses writel())
1289/**********************/ 1291 * Addresses are offsets from device's PCI hardware base address.
1290 1292 */
1291#define FH_MEM_LOWER_BOUND (0x1000) 1293#define FH_MEM_LOWER_BOUND (0x1000)
1292#define FH_MEM_UPPER_BOUND (0x1EF0) 1294#define FH_MEM_UPPER_BOUND (0x1EF0)
1293 1295
1294#define IWL_FH_REGS_LOWER_BOUND (0x1000) 1296/**
1295#define IWL_FH_REGS_UPPER_BOUND (0x2000) 1297 * Keep-Warm (KW) buffer base address.
1296 1298 *
1299 * Driver must allocate a 4KByte buffer that is used by 4965 for keeping the
1300 * host DRAM powered on (via dummy accesses to DRAM) to maintain low-latency
1301 * DRAM access when 4965 is Txing or Rxing. The dummy accesses prevent host
1302 * from going into a power-savings mode that would cause higher DRAM latency,
1303 * and possible data over/under-runs, before all Tx/Rx is complete.
1304 *
1305 * Driver loads IWL_FH_KW_MEM_ADDR_REG with the physical address (bits 35:4)
1306 * of the buffer, which must be 4K aligned. Once this is set up, the 4965
1307 * automatically invokes keep-warm accesses when normal accesses might not
1308 * be sufficient to maintain fast DRAM response.
1309 *
1310 * Bit fields:
1311 * 31-0: Keep-warm buffer physical base address [35:4], must be 4K aligned
1312 */
1297#define IWL_FH_KW_MEM_ADDR_REG (FH_MEM_LOWER_BOUND + 0x97C) 1313#define IWL_FH_KW_MEM_ADDR_REG (FH_MEM_LOWER_BOUND + 0x97C)
1298 1314
1315
1299/* CBBC Area - Circular buffers base address cache pointers table */ 1316/* CBBC Area - Circular buffers base address cache pointers table */
1300#define FH_MEM_CBBC_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0x9D0) 1317#define FH_MEM_CBBC_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0x9D0)
1301#define FH_MEM_CBBC_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xA10) 1318#define FH_MEM_CBBC_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xA10)
@@ -1326,16 +1343,16 @@ enum {
1326#define FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV (FH_MEM_RSSR_LOWER_BOUND + 0x008) 1343#define FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV (FH_MEM_RSSR_LOWER_BOUND + 0x008)
1327 1344
1328/* TCSR */ 1345/* TCSR */
1329#define IWL_FH_TCSR_LOWER_BOUND (IWL_FH_REGS_LOWER_BOUND + 0xD00) 1346#define IWL_FH_TCSR_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0xD00)
1330#define IWL_FH_TCSR_UPPER_BOUND (IWL_FH_REGS_LOWER_BOUND + 0xE60) 1347#define IWL_FH_TCSR_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xE60)
1331 1348
1332#define IWL_FH_TCSR_CHNL_TX_CONFIG_REG(_chnl) \ 1349#define IWL_FH_TCSR_CHNL_TX_CONFIG_REG(_chnl) \
1333 (IWL_FH_TCSR_LOWER_BOUND + 0x20 * _chnl) 1350 (IWL_FH_TCSR_LOWER_BOUND + 0x20 * _chnl)
1334 1351
1335/* TSSR Area - Tx shared status registers */ 1352/* TSSR Area - Tx shared status registers */
1336/* TSSR */ 1353/* TSSR */
1337#define IWL_FH_TSSR_LOWER_BOUND (IWL_FH_REGS_LOWER_BOUND + 0xEA0) 1354#define IWL_FH_TSSR_LOWER_BOUND (FH_MEM_LOWER_BOUND + 0xEA0)
1338#define IWL_FH_TSSR_UPPER_BOUND (IWL_FH_REGS_LOWER_BOUND + 0xEC0) 1355#define IWL_FH_TSSR_UPPER_BOUND (FH_MEM_LOWER_BOUND + 0xEC0)
1339 1356
1340#define IWL_FH_TSSR_TX_STATUS_REG (IWL_FH_TSSR_LOWER_BOUND + 0x010) 1357#define IWL_FH_TSSR_TX_STATUS_REG (IWL_FH_TSSR_LOWER_BOUND + 0x010)
1341 1358