diff options
author | Ajay Davanageri <ajay.davanageri@broadcom.corp-partner.google.com> | 2022-09-29 10:49:59 +0530 |
---|---|---|
committer | kensun <kensun@google.com> | 2023-05-11 08:00:38 +0000 |
commit | 556084eb1fb897c6fb31c88aaaee303ca959601e (patch) | |
tree | 58282b109f2e16356712756e6254e467f2d4f967 | |
parent | 81d338f8c2bfa659a466533778cbb29e71bc840b (diff) | |
download | wlan-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-x | bcmdhd/wifi_hal/wifi_logger.cpp | 35 |
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(); |