diff options
author | Michal Kazior <michal.kazior@tieto.com> | 2013-07-16 09:54:35 +0200 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-07-30 18:01:20 +0300 |
commit | affd321733eebc92b12cd329505f63e94ae80c93 (patch) | |
tree | 2e743c8a0a89f6e6057cd2c8f4b96769dfcdde17 /drivers/net/wireless/ath/ath10k/htc.c | |
parent | 87571bf0b8b27d4a97848ce48de34fa6d3b12db8 (diff) | |
download | lwn-affd321733eebc92b12cd329505f63e94ae80c93.tar.gz lwn-affd321733eebc92b12cd329505f63e94ae80c93.zip |
ath10k: implement device recovery
Restart the hardware if FW crashes.
If FW crashes during recovery we leave the
hardware in a "wedged" state to avoid recursive
recoveries.
When in "wedged" state userspace may bring
interfaces down (to issue stop()) and then bring
one interface (to issue start()) to reload
hardware manually.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/htc.c')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/htc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c index 7d5a36616b71..72e072c97588 100644 --- a/drivers/net/wireless/ath/ath10k/htc.c +++ b/drivers/net/wireless/ath/ath10k/htc.c @@ -246,6 +246,9 @@ int ath10k_htc_send(struct ath10k_htc *htc, { struct ath10k_htc_ep *ep = &htc->endpoint[eid]; + if (htc->ar->state == ATH10K_STATE_WEDGED) + return -ECOMM; + if (eid >= ATH10K_HTC_EP_COUNT) { ath10k_warn("Invalid endpoint id: %d\n", eid); return -ENOENT; |