iwlwifi: enhance testmode command sram_read
authorKenny Hsu <kenny.hsu@intel.com>
Tue, 27 Dec 2011 16:18:31 +0000 (08:18 -0800)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Fri, 6 Jan 2012 21:03:01 +0000 (13:03 -0800)
This patch enables SRAM read function to support entire target memory.

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-testmode.c
drivers/net/wireless/iwlwifi/iwl-testmode.h

index 2fc20675dc7b5a801c79f31de78c5d8ac2fd3138..58575fdc4504bb163ab14221e744f7e78546a9ae 100644 (file)
@@ -733,7 +733,7 @@ static int iwl_testmode_ownership(struct ieee80211_hw *hw, struct nlattr **tb)
 static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
 {
        struct iwl_priv *priv = hw->priv;
-       u32 base, ofs, size, maxsize;
+       u32 ofs, size, maxsize;
 
        if (priv->testmode_sram.sram_readed)
                return -EBUSY;
@@ -765,7 +765,7 @@ static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
                IWL_DEBUG_INFO(priv, "Error, unsupported uCode type\n");
                return -ENOSYS;
        }
-       if ((ofs + size) > maxsize) {
+       if ((ofs + size) > (maxsize + SRAM_DATA_SEG_OFFSET)) {
                IWL_DEBUG_INFO(priv, "Invalid offset/size: out of range\n");
                return -EINVAL;
        }
@@ -776,8 +776,7 @@ static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
                IWL_DEBUG_INFO(priv, "Error allocating memory\n");
                return -ENOMEM;
        }
-       base = 0x800000;
-       _iwl_read_targ_mem_words(bus(priv), base + ofs,
+       _iwl_read_targ_mem_words(bus(priv), ofs,
                                        priv->testmode_sram.buff_addr,
                                        priv->testmode_sram.buff_size / 4);
        priv->testmode_sram.num_chunks =
index 26138f110340819fc68407d21e3a827cce101591..9c6a67ab5c34ee0830c3027060db5d2271d37148 100644 (file)
@@ -271,4 +271,7 @@ enum iwl_tm_attr_t {
 /* Maximum data size of each dump it packet */
 #define DUMP_CHUNK_SIZE                (PAGE_SIZE - 1024)
 
+/* Address offset of data segment in SRAM */
+#define SRAM_DATA_SEG_OFFSET   0x800000
+
 #endif