iwlwifi: mvm: read the rfkill state and feed it to iwlmei
Read the rfkill state upon boot, mac start and mac stop. Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20211112062814.7502-6-emmanuel.grumbach@intel.com
This commit is contained in:
parent
bfcfdb59b6
commit
7ce1f2157e
3 changed files with 13 additions and 2 deletions
|
@ -1148,6 +1148,8 @@ static int iwl_mvm_mac_start(struct ieee80211_hw *hw)
|
||||||
ret = __iwl_mvm_mac_start(mvm);
|
ret = __iwl_mvm_mac_start(mvm);
|
||||||
mutex_unlock(&mvm->mutex);
|
mutex_unlock(&mvm->mutex);
|
||||||
|
|
||||||
|
iwl_mvm_mei_set_sw_rfkill_state(mvm);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1265,6 +1267,8 @@ static void iwl_mvm_mac_stop(struct ieee80211_hw *hw)
|
||||||
*/
|
*/
|
||||||
flush_work(&mvm->roc_done_wk);
|
flush_work(&mvm->roc_done_wk);
|
||||||
|
|
||||||
|
iwl_mvm_mei_set_sw_rfkill_state(mvm);
|
||||||
|
|
||||||
mutex_lock(&mvm->mutex);
|
mutex_lock(&mvm->mutex);
|
||||||
__iwl_mvm_mac_stop(mvm);
|
__iwl_mvm_mac_stop(mvm);
|
||||||
mutex_unlock(&mvm->mutex);
|
mutex_unlock(&mvm->mutex);
|
||||||
|
|
|
@ -2218,10 +2218,14 @@ static inline void iwl_mvm_mei_device_down(struct iwl_mvm *mvm)
|
||||||
iwl_mei_device_down();
|
iwl_mei_device_down();
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void iwl_mvm_mei_set_sw_rfkill_state(struct iwl_mvm *mvm, bool sw_rfkill)
|
static inline void iwl_mvm_mei_set_sw_rfkill_state(struct iwl_mvm *mvm)
|
||||||
{
|
{
|
||||||
|
bool sw_rfkill =
|
||||||
|
mvm->hw_registered ? rfkill_blocked(mvm->hw->wiphy->rfkill) : false;
|
||||||
|
|
||||||
if (mvm->mei_registered)
|
if (mvm->mei_registered)
|
||||||
iwl_mei_set_rfkill_state(iwl_mvm_is_radio_killed(mvm), sw_rfkill);
|
iwl_mei_set_rfkill_state(iwl_mvm_is_radio_killed(mvm),
|
||||||
|
sw_rfkill);
|
||||||
}
|
}
|
||||||
|
|
||||||
void iwl_mvm_send_roaming_forbidden_event(struct iwl_mvm *mvm,
|
void iwl_mvm_send_roaming_forbidden_event(struct iwl_mvm *mvm,
|
||||||
|
|
|
@ -756,6 +756,9 @@ static int iwl_mvm_start_post_nvm(struct iwl_mvm *mvm)
|
||||||
wiphy_rfkill_set_hw_state_reason(mvm->hw->wiphy,
|
wiphy_rfkill_set_hw_state_reason(mvm->hw->wiphy,
|
||||||
mvm->mei_rfkill_blocked,
|
mvm->mei_rfkill_blocked,
|
||||||
RFKILL_HARD_BLOCK_NOT_OWNER);
|
RFKILL_HARD_BLOCK_NOT_OWNER);
|
||||||
|
|
||||||
|
iwl_mvm_mei_set_sw_rfkill_state(mvm);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue