Commit eb33451d authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by Ben Hutchings

iwl4965: reset firmware after rfkill off

commit 788f7a56 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=977053Reported-and-tested-by: default avatarJustin Pearce <whitefox@guardianfox.net>
Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
[bwh: Backported to 3.2: adjust filenames, context, naming]
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent f939bb61
......@@ -1757,6 +1757,7 @@ int iwl_legacy_force_reset(struct iwl_priv *priv, bool external)
return 0;
}
EXPORT_SYMBOL(iwl_legacy_force_reset);
int
iwl_legacy_mac_change_interface(struct ieee80211_hw *hw,
......
......@@ -868,12 +868,12 @@ static void iwl4965_irq_tasklet(struct iwl_priv *priv)
* 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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment