| From | Ben Hutchings <> | Date | Sun, 08 Sep 2013 03:52:01 +0100 | Subject | [055/121] iwl4965: reset firmware after rfkill off |
| |
3.2.51-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Stanislaw Gruszka <sgruszka@redhat.com>
commit 788f7a56fce1bcb2067b62b851a086fca48a0056 upstream.
Using rfkill switch can make firmware unstable, what cause various Microcode errors and kernel warnings. Reseting firmware just after rfkill off (radio on) helped with that.
Resolve: https://bugzilla.redhat.com/show_bug.cgi?id=977053
Reported-and-tested-by: Justin Pearce <whitefox@guardianfox.net> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> [bwh: Backported to 3.2: adjust filenames, context, naming] Signed-off-by: Ben Hutchings <ben@decadent.org.uk> --- drivers/net/wireless/iwlegacy/iwl4965-base.c | 10 +++++----- drivers/net/wireless/iwlegacy/iwl-core.c | 1 + 2 files changed, 6 insertions(+), 5 deletions(-)
--- a/drivers/net/wireless/iwlegacy/iwl4965-base.c +++ b/drivers/net/wireless/iwlegacy/iwl4965-base.c @@ -868,12 +868,12 @@ static void iwl4965_irq_tasklet(struct i * is killed. Hence update the killswitch state here. The * rfkill handler will care about restarting if needed. */ - if (!test_bit(STATUS_ALIVE, &priv->status)) { - if (hw_rf_kill) - set_bit(STATUS_RF_KILL_HW, &priv->status); - else - clear_bit(STATUS_RF_KILL_HW, &priv->status); + if (hw_rf_kill) { + set_bit(STATUS_RF_KILL_HW, &priv->status); + } else { + clear_bit(STATUS_RF_KILL_HW, &priv->status); wiphy_rfkill_set_hw_state(priv->hw->wiphy, hw_rf_kill); + iwl_legacy_force_reset(priv, true); } handled |= CSR_INT_BIT_RF_KILL; --- a/drivers/net/wireless/iwlegacy/iwl-core.c +++ b/drivers/net/wireless/iwlegacy/iwl-core.c @@ -1757,6 +1757,7 @@ int iwl_legacy_force_reset(struct iwl_pr return 0; } +EXPORT_SYMBOL(iwl_legacy_force_reset); int iwl_legacy_mac_change_interface(struct ieee80211_hw *hw,
|