@@ -261,7 +261,7 @@ void ath10k_core_get_fw_features_str(struct ath10k *ar,
261261 int i ;
262262
263263 for (i = 0 ; i < ATH10K_FW_FEATURE_COUNT ; i ++ ) {
264- if (test_bit (i , ar -> fw_features )) {
264+ if (test_bit (i , ar -> normal_mode_fw . fw_file . fw_features )) {
265265 if (len > 0 )
266266 len += scnprintf (buf + len , buf_len - len , "," );
267267
@@ -627,7 +627,7 @@ static int ath10k_download_and_run_otp(struct ath10k *ar)
627627 ath10k_dbg (ar , ATH10K_DBG_BOOT , "boot otp execute result %d\n" , result );
628628
629629 if (!(skip_otp || test_bit (ATH10K_FW_FEATURE_IGNORE_OTP_RESULT ,
630- ar -> fw_features )) &&
630+ ar -> running_fw -> fw_file . fw_features )) &&
631631 result != 0 ) {
632632 ath10k_err (ar , "otp calibration failed: %d" , result );
633633 return - EINVAL ;
@@ -1074,13 +1074,13 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,
10741074 ath10k_dbg (ar , ATH10K_DBG_BOOT ,
10751075 "Enabling feature bit: %i\n" ,
10761076 i );
1077- __set_bit (i , ar -> fw_features );
1077+ __set_bit (i , fw_file -> fw_features );
10781078 }
10791079 }
10801080
10811081 ath10k_dbg_dump (ar , ATH10K_DBG_BOOT , "features" , "" ,
1082- ar -> fw_features ,
1083- sizeof (ar -> fw_features ));
1082+ ar -> running_fw -> fw_file . fw_features ,
1083+ sizeof (fw_file -> fw_features ));
10841084 break ;
10851085 case ATH10K_FW_IE_FW_IMAGE :
10861086 ath10k_dbg (ar , ATH10K_DBG_BOOT ,
@@ -1430,8 +1430,10 @@ static void ath10k_core_restart(struct work_struct *work)
14301430
14311431static int ath10k_core_init_firmware_features (struct ath10k * ar )
14321432{
1433- if (test_bit (ATH10K_FW_FEATURE_WMI_10_2 , ar -> fw_features ) &&
1434- !test_bit (ATH10K_FW_FEATURE_WMI_10X , ar -> fw_features )) {
1433+ struct ath10k_fw_file * fw_file = & ar -> normal_mode_fw .fw_file ;
1434+
1435+ if (test_bit (ATH10K_FW_FEATURE_WMI_10_2 , fw_file -> fw_features ) &&
1436+ !test_bit (ATH10K_FW_FEATURE_WMI_10X , fw_file -> fw_features )) {
14351437 ath10k_err (ar , "feature bits corrupted: 10.2 feature requires 10.x feature to be set as well" );
14361438 return - EINVAL ;
14371439 }
@@ -1450,7 +1452,7 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
14501452 break ;
14511453 case ATH10K_CRYPT_MODE_SW :
14521454 if (!test_bit (ATH10K_FW_FEATURE_RAW_MODE_SUPPORT ,
1453- ar -> fw_features )) {
1455+ fw_file -> fw_features )) {
14541456 ath10k_err (ar , "cryptmode > 0 requires raw mode support from firmware" );
14551457 return - EINVAL ;
14561458 }
@@ -1469,7 +1471,7 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
14691471
14701472 if (rawmode ) {
14711473 if (!test_bit (ATH10K_FW_FEATURE_RAW_MODE_SUPPORT ,
1472- ar -> fw_features )) {
1474+ fw_file -> fw_features )) {
14731475 ath10k_err (ar , "rawmode = 1 requires support from firmware" );
14741476 return - EINVAL ;
14751477 }
@@ -1495,9 +1497,9 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
14951497 * ATH10K_FW_IE_WMI_OP_VERSION.
14961498 */
14971499 if (ar -> wmi .op_version == ATH10K_FW_WMI_OP_VERSION_UNSET ) {
1498- if (test_bit (ATH10K_FW_FEATURE_WMI_10X , ar -> fw_features )) {
1500+ if (test_bit (ATH10K_FW_FEATURE_WMI_10X , fw_file -> fw_features )) {
14991501 if (test_bit (ATH10K_FW_FEATURE_WMI_10_2 ,
1500- ar -> fw_features ))
1502+ fw_file -> fw_features ))
15011503 ar -> wmi .op_version = ATH10K_FW_WMI_OP_VERSION_10_2 ;
15021504 else
15031505 ar -> wmi .op_version = ATH10K_FW_WMI_OP_VERSION_10_1 ;
@@ -1553,7 +1555,7 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar)
15531555 ar -> max_spatial_stream = ar -> hw_params .max_spatial_stream ;
15541556
15551557 if (test_bit (ATH10K_FW_FEATURE_PEER_FLOW_CONTROL ,
1556- ar -> fw_features ))
1558+ fw_file -> fw_features ))
15571559 ar -> htt .max_num_pending_tx = TARGET_10_4_NUM_MSDU_DESC_PFC ;
15581560 else
15591561 ar -> htt .max_num_pending_tx = TARGET_10_4_NUM_MSDU_DESC ;
@@ -1621,7 +1623,7 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
16211623 * to set the clock source once the target is initialized.
16221624 */
16231625 if (test_bit (ATH10K_FW_FEATURE_SUPPORTS_SKIP_CLOCK_INIT ,
1624- ar -> fw_features )) {
1626+ ar -> running_fw -> fw_file . fw_features )) {
16251627 status = ath10k_bmi_write32 (ar , hi_skip_clock_init , 1 );
16261628 if (status ) {
16271629 ath10k_err (ar , "could not write to skip_clock_init: %d\n" ,
0 commit comments