소스 검색

iwlwifi: mvm: don't init MCC during CT-kill

RTNL is not taken during CT-kill so regulatory APIs cannot be invoked.
That's fine, since the HW is only brought up to check the temperature
during CT-kill. We don't expect Tx or scanning.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Arik Nemtsov 10 년 전
부모
커밋
35af15d131
1개의 변경된 파일9개의 추가작업 그리고 3개의 파일을 삭제
  1. 9 3
      drivers/net/wireless/iwlwifi/mvm/fw.c

+ 9 - 3
drivers/net/wireless/iwlwifi/mvm/fw.c

@@ -739,9 +739,15 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
 	if (ret)
 	if (ret)
 		goto error;
 		goto error;
 
 
-	ret = iwl_mvm_init_mcc(mvm);
-	if (ret)
-		goto error;
+	/*
+	 * RTNL is not taken during Ct-kill, but we don't need to scan/Tx
+	 * anyway, so don't init MCC.
+	 */
+	if (!test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status)) {
+		ret = iwl_mvm_init_mcc(mvm);
+		if (ret)
+			goto error;
+	}
 
 
 	if (mvm->fw->ucode_capa.capa[0] & IWL_UCODE_TLV_CAPA_UMAC_SCAN) {
 	if (mvm->fw->ucode_capa.capa[0] & IWL_UCODE_TLV_CAPA_UMAC_SCAN) {
 		ret = iwl_mvm_config_scan(mvm);
 		ret = iwl_mvm_config_scan(mvm);