ath6kl: read reserved ram size from firmware file
authorKalle Valo <kvalo@qca.qualcomm.com>
Wed, 7 Sep 2011 07:55:17 +0000 (10:55 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 16 Sep 2011 15:48:34 +0000 (18:48 +0300)
A new version of firmware needs different reserved ram size so read that
from the firmware image.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/core.h
drivers/net/wireless/ath/ath6kl/init.c

index 3365dc8bab3b93f3c8d559cb05921766d5cd5aa1..abb4aaf48c087f41d5a258253a54c660f761e0e4 100644 (file)
@@ -67,6 +67,7 @@ enum ath6kl_fw_ie_type {
        ATH6KL_FW_IE_OTP_IMAGE = 2,
        ATH6KL_FW_IE_FW_IMAGE = 3,
        ATH6KL_FW_IE_PATCH_IMAGE = 4,
+       ATH6KL_FW_IE_RESERVED_RAM_SIZE = 5,
 };
 
 struct ath6kl_fw_ie {
index 5865466e884cfe0e65f00c4210ec49f519f8d0f2..e2a29b25884c42ae72cd3a5179f9b053aa716cab 100644 (file)
@@ -902,6 +902,7 @@ static int ath6kl_fetch_fw_api2(struct ath6kl *ar)
        const char *filename;
        const u8 *data;
        int ret, ie_id;
+       __le32 *val;
 
        switch (ar->version.target_ver) {
        case AR6003_REV2_VERSION:
@@ -987,6 +988,10 @@ static int ath6kl_fetch_fw_api2(struct ath6kl *ar)
 
                        ar->fw_patch_len = ie_len;
                        break;
+               case ATH6KL_FW_IE_RESERVED_RAM_SIZE:
+                       val = (__le32 *) data;
+                       ar->hw.reserved_ram_size = le32_to_cpup(val);
+                       break;
                default:
                        ath6kl_dbg(ATH6KL_DBG_TRC, "Unknown fw ie: %u\n",
                                   le32_to_cpup(&hdr->id));