diff options
| author | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
|---|---|---|
| committer | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
| commit | 79828b4fa835f73cdaf4bffa48696abdcbea9d02 (patch) | |
| tree | 5e0fa7156acb75ba603022bc807df8f2fedb97a8 /drivers/net/wireless/ath/ath10k/wow.c | |
| parent | 721b51fcf91898299d96f4b72cb9434cda29dce6 (diff) | |
| parent | 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a (diff) | |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/wow.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath10k/wow.c | 20 | 
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wow.c b/drivers/net/wireless/ath/ath10k/wow.c index a68d8fd853a3..8e02b381990f 100644 --- a/drivers/net/wireless/ath/ath10k/wow.c +++ b/drivers/net/wireless/ath/ath10k/wow.c @@ -301,8 +301,26 @@ int ath10k_wow_op_resume(struct ieee80211_hw *hw)  		ath10k_warn(ar, "failed to wakeup from wow: %d\n", ret);  exit: +	if (ret) { +		switch (ar->state) { +		case ATH10K_STATE_ON: +			ar->state = ATH10K_STATE_RESTARTING; +			ret = 1; +			break; +		case ATH10K_STATE_OFF: +		case ATH10K_STATE_RESTARTING: +		case ATH10K_STATE_RESTARTED: +		case ATH10K_STATE_UTF: +		case ATH10K_STATE_WEDGED: +			ath10k_warn(ar, "encountered unexpected device state %d on resume, cannot recover\n", +				    ar->state); +			ret = -EIO; +			break; +		} +	} +  	mutex_unlock(&ar->conf_mutex); -	return ret ? 1 : 0; +	return ret;  }  int ath10k_wow_init(struct ath10k *ar)  |