aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKenny Hsu <kenny.hsu@intel.com>2012-01-06 16:16:30 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-01-24 14:08:35 -0500
commitb07f08a56524cdc49001b1467743acc3c5b78962 (patch)
treea936a196327ac609d02aba206583b00940059feb /drivers
parent102f097f1937db41f59674caca0a1e38c963baba (diff)
iwlwifi: enhance testmode command sram_read
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> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-testmode.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-testmode.h3
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-testmode.c b/drivers/net/wireless/iwlwifi/iwl-testmode.c
index 2fc20675dc7b..58575fdc4504 100644
--- a/drivers/net/wireless/iwlwifi/iwl-testmode.c
+++ b/drivers/net/wireless/iwlwifi/iwl-testmode.c
@@ -733,7 +733,7 @@ static int iwl_testmode_ownership(struct ieee80211_hw *hw, struct nlattr **tb)
733static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb) 733static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
734{ 734{
735 struct iwl_priv *priv = hw->priv; 735 struct iwl_priv *priv = hw->priv;
736 u32 base, ofs, size, maxsize; 736 u32 ofs, size, maxsize;
737 737
738 if (priv->testmode_sram.sram_readed) 738 if (priv->testmode_sram.sram_readed)
739 return -EBUSY; 739 return -EBUSY;
@@ -765,7 +765,7 @@ static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
765 IWL_DEBUG_INFO(priv, "Error, unsupported uCode type\n"); 765 IWL_DEBUG_INFO(priv, "Error, unsupported uCode type\n");
766 return -ENOSYS; 766 return -ENOSYS;
767 } 767 }
768 if ((ofs + size) > maxsize) { 768 if ((ofs + size) > (maxsize + SRAM_DATA_SEG_OFFSET)) {
769 IWL_DEBUG_INFO(priv, "Invalid offset/size: out of range\n"); 769 IWL_DEBUG_INFO(priv, "Invalid offset/size: out of range\n");
770 return -EINVAL; 770 return -EINVAL;
771 } 771 }
@@ -776,8 +776,7 @@ static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
776 IWL_DEBUG_INFO(priv, "Error allocating memory\n"); 776 IWL_DEBUG_INFO(priv, "Error allocating memory\n");
777 return -ENOMEM; 777 return -ENOMEM;
778 } 778 }
779 base = 0x800000; 779 _iwl_read_targ_mem_words(bus(priv), ofs,
780 _iwl_read_targ_mem_words(bus(priv), base + ofs,
781 priv->testmode_sram.buff_addr, 780 priv->testmode_sram.buff_addr,
782 priv->testmode_sram.buff_size / 4); 781 priv->testmode_sram.buff_size / 4);
783 priv->testmode_sram.num_chunks = 782 priv->testmode_sram.num_chunks =
diff --git a/drivers/net/wireless/iwlwifi/iwl-testmode.h b/drivers/net/wireless/iwlwifi/iwl-testmode.h
index 26138f110340..9c6a67ab5c34 100644
--- a/drivers/net/wireless/iwlwifi/iwl-testmode.h
+++ b/drivers/net/wireless/iwlwifi/iwl-testmode.h
@@ -271,4 +271,7 @@ enum iwl_tm_attr_t {
271/* Maximum data size of each dump it packet */ 271/* Maximum data size of each dump it packet */
272#define DUMP_CHUNK_SIZE (PAGE_SIZE - 1024) 272#define DUMP_CHUNK_SIZE (PAGE_SIZE - 1024)
273 273
274/* Address offset of data segment in SRAM */
275#define SRAM_DATA_SEG_OFFSET 0x800000
276
274#endif 277#endif