diff options
author | Kenny Hsu <kenny.hsu@intel.com> | 2012-01-06 16:16:30 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-24 14:08:35 -0500 |
commit | b07f08a56524cdc49001b1467743acc3c5b78962 (patch) | |
tree | a936a196327ac609d02aba206583b00940059feb /drivers | |
parent | 102f097f1937db41f59674caca0a1e38c963baba (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.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-testmode.h | 3 |
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) | |||
733 | static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb) | 733 | static 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 |