summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAjay Davanageri <ajay.davanageri@broadcom.corp-partner.google.com>2022-09-29 10:49:59 +0530
committerkensun <kensun@google.com>2023-05-11 08:00:38 +0000
commit556084eb1fb897c6fb31c88aaaee303ca959601e (patch)
tree58282b109f2e16356712756e6254e467f2d4f967
parent81d338f8c2bfa659a466533778cbb29e71bc840b (diff)
downloadwlan-556084eb1fb897c6fb31c88aaaee303ca959601e.tar.gz
Txcap blob ota download related HAL changes.
Bug: 241207159 Test: Manual Signed-off-by: Ajay Davanageri <ajay.davanageri@broadcom.corp-partner.google.com> Change-Id: Iae5cdba163845d9f4af1852d83659697d8a1eae0
-rwxr-xr-xbcmdhd/wifi_hal/wifi_logger.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/bcmdhd/wifi_hal/wifi_logger.cpp b/bcmdhd/wifi_hal/wifi_logger.cpp
index 3d57c37..dbf5159 100755
--- a/bcmdhd/wifi_hal/wifi_logger.cpp
+++ b/bcmdhd/wifi_hal/wifi_logger.cpp
@@ -81,6 +81,7 @@ typedef enum {
#define MAX_SKU_NAME_LEN 5
#define OTA_PATH "/data/vendor/firmware/wifi/"
#define OTA_CLM_FILE "bcmdhd_clm.blob"
+#define OTA_TXCAP_BLOB_FILE "bcmdhd_txcap.blob"
#define OTA_NVRAM_FILE "bcmdhd.cal"
#define HW_DEV_PROP "ro.revision"
#define HW_SKU_PROP "ro.boot.hardware.sku"
@@ -96,6 +97,8 @@ typedef struct ota_info_buf {
const void *ota_clm_buf[1];
u32 ota_nvram_len;
const void *ota_nvram_buf[1];
+ u32 ota_txcap_len;
+ const void *ota_txcap_buf[1];
} ota_info_buf_t;
u32 applied_ota_version = 0;
@@ -189,6 +192,8 @@ typedef enum {
OTA_DOWNLOAD_NVRAM_ATTR = 0x0004,
OTA_SET_FORCE_REG_ON = 0x0005,
OTA_CUR_NVRAM_EXT_ATTR = 0x0006,
+ OTA_DOWNLOAD_TXCAP_BLOB_LENGTH_ATTR = 0x0007,
+ OTA_DOWNLOAD_TXCAP_BLOB_ATTR = 0x0008,
} OTA_DOWNLOAD_ATTRIBUTE;
#define HAL_START_REQUEST_ID 2
@@ -2707,11 +2712,24 @@ class OtaUpdateCommand : public WifiCommand
return result;
}
+ result = request.put_u32(OTA_DOWNLOAD_TXCAP_BLOB_LENGTH_ATTR, buf->ota_txcap_len);
+ if (result != WIFI_SUCCESS) {
+ ALOGE("otaDownload Failed to put data= %d", result);
+ return result;
+ }
+
+ result = request.put(OTA_DOWNLOAD_TXCAP_BLOB_ATTR,
+ buf->ota_txcap_buf, sizeof(*buf->ota_txcap_buf));
+ if (result != WIFI_SUCCESS) {
+ ALOGE("otaDownload Failed to put data= %d", result);
+ return result;
+ }
+
request.attr_end(data);
result = requestResponse(request);
if (result != WIFI_SUCCESS) {
- ALOGE("Failed to register set otaDownload; result = %d", result);
+ ALOGE("Failed to register set otaDownload; result = %d\n", result);
}
return result;
@@ -2825,8 +2843,10 @@ wifi_error wifi_hal_ota_update(wifi_interface_handle iface, uint32_t ota_version
wifi_handle handle = getWifiHandle(iface);
wifi_error result = WIFI_SUCCESS;
ota_info_buf_t buf;
+ char txcap_blob_file_name[FILE_NAME_LEN];
char *buffer_nvram = NULL;
char *buffer_clm = NULL;
+ char *buffer_txcap_blob = NULL;
char prop_revision_buf[PROPERTY_VALUE_MAX] = {0,};
char prop_sku_buf[PROPERTY_VALUE_MAX] = {0,};
char sku_name[MAX_SKU_NAME_LEN] = {0,};
@@ -2861,6 +2881,16 @@ wifi_error wifi_hal_ota_update(wifi_interface_handle iface, uint32_t ota_version
}
buf.ota_clm_buf[0] = buffer_clm;
+ memset(txcap_blob_file_name, 0, FILE_NAME_LEN);
+ sprintf(txcap_blob_file_name, "%s%s", OTA_PATH, OTA_TXCAP_BLOB_FILE);
+ ALOGE("[OTA] PATH TXCAP BLOB %s", txcap_blob_file_name);
+ read_ota_file(txcap_blob_file_name, &buffer_txcap_blob, &buf.ota_txcap_len);
+ if (buffer_txcap_blob == NULL) {
+ ALOGE("buffer_txcap_blob is null");
+ goto exit;
+ }
+ buf.ota_txcap_buf[0] = buffer_txcap_blob;
+
check_multiple_nvram_clm(NVRAM, prop_revision_buf, sku_name,
&buffer_nvram, &buf.ota_nvram_len);
if (buffer_nvram == NULL) {
@@ -2877,6 +2907,9 @@ exit:
if (buffer_nvram != NULL) {
free(buffer_nvram);
}
+ if (buffer_txcap_blob != NULL) {
+ free(buffer_txcap_blob);
+ }
cmd->releaseRef();