iwlwifi: allow to zero SRAM
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 9 Jan 2013 09:37:59 +0000 (11:37 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 16 Jan 2013 13:18:56 +0000 (14:18 +0100)
Sending a NULL pointer to iwl_trans_write_mem allows now
to zero SRAM.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/pcie/trans.c

index b0d5c715ca1e2772a735f9186818a9d2d48f0475..55a140ade5a7069d522bd1fccddcb6fe9ddd927d 100644 (file)
@@ -391,7 +391,8 @@ struct iwl_trans;
  * @read_prph: read a DWORD from a periphery register
  * @write_prph: write a DWORD to a periphery register
  * @read_mem: read device's SRAM in DWORD
- * @write_mem: write device's SRAM in DWORD
+ * @write_mem: write device's SRAM in DWORD. If %buf is %NULL, then the memory
+ *     will be zeroed.
  * @configure: configure parameters required by the transport layer from
  *     the op_mode. May be called several times before start_fw, can't be
  *     called after that.
index 2de5770de64bff54e655792fd51303f3c2247866..4028c03eff5f1cbb967464f27df55f4a133c9e74 100644 (file)
@@ -815,7 +815,8 @@ static int iwl_trans_pcie_write_mem(struct iwl_trans *trans, u32 addr,
        if (iwl_trans_grab_nic_access(trans, false)) {
                iwl_write32(trans, HBUS_TARG_MEM_WADDR, addr);
                for (offs = 0; offs < dwords; offs++)
-                       iwl_write32(trans, HBUS_TARG_MEM_WDAT, vals[offs]);
+                       iwl_write32(trans, HBUS_TARG_MEM_WDAT,
+                                   vals ? vals[offs] : 0);
                iwl_trans_release_nic_access(trans);
        } else {
                ret = -EBUSY;