ath5k: reset key cache after resume
Otherwise it may be impossible to connected to an open network after a resume. This is a modified version of an original patch by Alex Eskin <alexeskin@yahoo.com>: https://bugzilla.redhat.com/show_bug.cgi?id=425950#c8 Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c65638a72c
commit
247ae44920
1 changed files with 14 additions and 3 deletions
|
@ -604,7 +604,8 @@ ath5k_pci_resume(struct pci_dev *pdev)
|
|||
{
|
||||
struct ieee80211_hw *hw = pci_get_drvdata(pdev);
|
||||
struct ath5k_softc *sc = hw->priv;
|
||||
int err;
|
||||
struct ath5k_hw *ah = sc->ah;
|
||||
int i, err;
|
||||
|
||||
err = pci_set_power_state(pdev, PCI_D0);
|
||||
if (err)
|
||||
|
@ -624,10 +625,20 @@ ath5k_pci_resume(struct pci_dev *pdev)
|
|||
|
||||
ath5k_init(sc);
|
||||
if (test_bit(ATH_STAT_LEDSOFT, sc->status)) {
|
||||
ath5k_hw_set_gpio_output(sc->ah, sc->led_pin);
|
||||
ath5k_hw_set_gpio(sc->ah, sc->led_pin, 0);
|
||||
ath5k_hw_set_gpio_output(ah, sc->led_pin);
|
||||
ath5k_hw_set_gpio(ah, sc->led_pin, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Reset the key cache since some parts do not
|
||||
* reset the contents on initial power up or resume.
|
||||
*
|
||||
* FIXME: This may need to be revisited when mac80211 becomes
|
||||
* aware of suspend/resume.
|
||||
*/
|
||||
for (i = 0; i < AR5K_KEYTABLE_SIZE; i++)
|
||||
ath5k_hw_reset_key(ah, i);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PM */
|
||||
|
|
Loading…
Reference in a new issue