Browse Source

ath6kl: allow firmware to override firmware patch address

In some firmware versions their patch address has changed. If the firmware
provides one, use it to override the default address.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Kalle Valo 14 years ago
parent
commit
1b4304da0a
2 changed files with 8 additions and 0 deletions
  1. 1 0
      drivers/net/wireless/ath/ath6kl/core.h
  2. 7 0
      drivers/net/wireless/ath/ath6kl/init.c

+ 1 - 0
drivers/net/wireless/ath/ath6kl/core.h

@@ -69,6 +69,7 @@ enum ath6kl_fw_ie_type {
 	ATH6KL_FW_IE_PATCH_IMAGE = 4,
 	ATH6KL_FW_IE_RESERVED_RAM_SIZE = 5,
 	ATH6KL_FW_IE_CAPABILITIES = 6,
+	ATH6KL_FW_IE_PATCH_ADDR = 7,
 };
 
 enum ath6kl_fw_capability {

+ 7 - 0
drivers/net/wireless/ath/ath6kl/init.c

@@ -1000,6 +1000,13 @@ static int ath6kl_fetch_fw_api2(struct ath6kl *ar)
 					__set_bit(i, ar->fw_capabilities);
 			}
 			break;
+		case ATH6KL_FW_IE_PATCH_ADDR:
+			if (ie_len != sizeof(*val))
+				break;
+
+			val = (__le32 *) data;
+			ar->hw.dataset_patch_addr = le32_to_cpup(val);
+			break;
 		default:
 			ath6kl_dbg(ATH6KL_DBG_TRC, "Unknown fw ie: %u\n",
 				   le32_to_cpup(&hdr->id));