mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
iwlwifi: add an extra firmware state in the transport
Start tracking not just if the firmware is dead or alive, but also if it's starting. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/iwlwifi.20201209231352.33e50d40b688.I8bbd41af7aa5e769273a6fc1c06fbf548dd2eb26@changeid Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
caf4637712
commit
b2ed841ed0
1 changed files with 13 additions and 5 deletions
|
@ -590,12 +590,14 @@ struct iwl_trans_ops {
|
|||
/**
|
||||
* enum iwl_trans_state - state of the transport layer
|
||||
*
|
||||
* @IWL_TRANS_NO_FW: no fw has sent an alive response
|
||||
* @IWL_TRANS_FW_ALIVE: a fw has sent an alive response
|
||||
* @IWL_TRANS_NO_FW: firmware wasn't started yet, or crashed
|
||||
* @IWL_TRANS_FW_STARTED: FW was started, but not alive yet
|
||||
* @IWL_TRANS_FW_ALIVE: FW has sent an alive response
|
||||
*/
|
||||
enum iwl_trans_state {
|
||||
IWL_TRANS_NO_FW = 0,
|
||||
IWL_TRANS_FW_ALIVE = 1,
|
||||
IWL_TRANS_NO_FW,
|
||||
IWL_TRANS_FW_STARTED,
|
||||
IWL_TRANS_FW_ALIVE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1025,12 +1027,18 @@ static inline int iwl_trans_start_fw(struct iwl_trans *trans,
|
|||
const struct fw_img *fw,
|
||||
bool run_in_rfkill)
|
||||
{
|
||||
int ret;
|
||||
|
||||
might_sleep();
|
||||
|
||||
WARN_ON_ONCE(!trans->rx_mpdu_cmd);
|
||||
|
||||
clear_bit(STATUS_FW_ERROR, &trans->status);
|
||||
return trans->ops->start_fw(trans, fw, run_in_rfkill);
|
||||
ret = trans->ops->start_fw(trans, fw, run_in_rfkill);
|
||||
if (ret == 0)
|
||||
trans->state = IWL_TRANS_FW_STARTED;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline void iwl_trans_stop_device(struct iwl_trans *trans)
|
||||
|
|
Loading…
Add table
Reference in a new issue