diff options
author | Isaac Chiou <isaacchiou@google.com> | 2021-11-15 15:50:35 +0800 |
---|---|---|
committer | Isaac Chiou <isaacchiou@google.com> | 2021-11-15 21:39:10 +0800 |
commit | f0b5baa7ad18ad127833fa7870be3a40bdeedbbf (patch) | |
tree | 051bab32511abe5e9cf319debb29f77f9f74b47e | |
parent | 30d9d9ad161bb3ad951291704e563d8dfeff4390 (diff) | |
download | wlan-f0b5baa7ad18ad127833fa7870be3a40bdeedbbf.tar.gz |
wifi: Multiple blobs based on sku for OTA update
1. Add new HW ID and SKU for new project
VzW mmWave = GB62Z
ROW Sub6 = GX7AS
EU Sub 6 = G1AZG
JP Sub 6 = GB17L
2. Re-struct HW ID and its SKU name in an array for maintainability
Bug: 202370910
Test: Print hw id and its corresponding sku name (known hw id, no hw id, unknown hw id)
Change-Id: Ic54258b42fd3cebb59d243f7c9d78d53830dc011
-rwxr-xr-x | bcmdhd/wifi_hal/wifi_logger.cpp | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/bcmdhd/wifi_hal/wifi_logger.cpp b/bcmdhd/wifi_hal/wifi_logger.cpp index 440d9ba..6870ee6 100755 --- a/bcmdhd/wifi_hal/wifi_logger.cpp +++ b/bcmdhd/wifi_hal/wifi_logger.cpp @@ -189,6 +189,27 @@ typedef enum { #define HAL_START_REQUEST_ID 2 #define HAL_RESTART_ID 3 #define FILE_NAME_LEN 256 + +typedef struct { + char hw_id[PROPERTY_VALUE_MAX]; + char sku[MAX_SKU_NAME_LEN]; +} sku_info_t; + +sku_info_t sku_table[] = { + { {"G9S9B"}, {"MMW"} }, + { {"G8V0U"}, {"MMW"} }, + { {"GFQM1"}, {"MMW"} }, + { {"GB62Z"}, {"MMW"} }, + { {"GB7N6"}, {"ROW"} }, + { {"GLU0G"}, {"ROW"} }, + { {"GNA8F"}, {"ROW"} }, + { {"GX7AS"}, {"ROW"} }, + { {"GR1YH"}, {"JPN"} }, + { {"GF5KQ"}, {"JPN"} }, + { {"GPQ72"}, {"JPN"} }, + { {"GB17L"}, {"JPN"} }, + { {"G1AZG"}, {"EU"} } +}; /////////////////////////////////////////////////////////////////////////////// class DebugCommand : public WifiCommand { @@ -1994,21 +2015,14 @@ wifi_error wifi_hal_ota_update(wifi_interface_handle iface, uint32_t ota_version property_get(HW_DEV_PROP, prop_revision_buf, NULL); property_get(HW_SKU_PROP, prop_sku_buf, NULL); - if (strcmp(prop_sku_buf, "G9S9B") == 0 || - strcmp(prop_sku_buf, "G8V0U") == 0 || - strcmp(prop_sku_buf, "GFQM1") == 0) { - strncpy(sku_name, "MMW", MAX_SKU_NAME_LEN); - } else if (strcmp(prop_sku_buf, "GR1YH") == 0 || - strcmp(prop_sku_buf, "GF5KQ") == 0 || - strcmp(prop_sku_buf, "GPQ72") == 0) { - strncpy(sku_name, "JPN", MAX_SKU_NAME_LEN); - } else if (strcmp(prop_sku_buf, "GB7N6") == 0 || - strcmp(prop_sku_buf, "GLU0G") == 0 || - strcmp(prop_sku_buf, "GNA8F") == 0) { - strncpy(sku_name, "ROW", MAX_SKU_NAME_LEN); - } else { - strncpy(sku_name, "NA", MAX_SKU_NAME_LEN); + strncpy(sku_name, "NA", MAX_SKU_NAME_LEN); + for (int i = 0; i < ARRAYSIZE(sku_table); i ++) { + if (strcmp(prop_sku_buf, sku_table[i].hw_id) == 0) { + strncpy(sku_name, sku_table[i].sku, MAX_SKU_NAME_LEN); + break; + } } + ALOGD("prop_sku_buf is %s, sku_name is %s", prop_sku_buf, sku_name); check_multiple_nvram_clm(CLM_BLOB, prop_revision_buf, sku_name, &buffer_clm, &buf.ota_clm_len); if (buffer_clm == NULL) { |