aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPavel Roskin <proski@gnu.org>2009-08-02 14:30:02 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-08-04 16:44:24 -0400
commit117839bd1251dc654938c529c95c7611ac260351 (patch)
tree6a374c36e8c87add6399d32b959e0b77a942dd6e /drivers
parentc1be5152860218dffea6a47cff5ea31a56c6cff5 (diff)
rt61pci: fix module reloading
Unloading rt61pci can leave the device in such state that reloading rt61pci would fail to reinitialize it. Bogus data would be read from the EEPROM and the RF version won't be recognized. It appears that unloading rt61pci with power saving enabled would have such effect. To initialize the device properly, SOFT_RESET_CSR should be set to the same value as rt61pci_config_ps() uses to wake up the device. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index fb95b8cc4fe9..e20dd7431f21 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2601,6 +2601,11 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev)
2601 int retval; 2601 int retval;
2602 2602
2603 /* 2603 /*
2604 * Disable power saving.
2605 */
2606 rt2x00pci_register_write(rt2x00dev, SOFT_RESET_CSR, 0x00000007);
2607
2608 /*
2604 * Allocate eeprom data. 2609 * Allocate eeprom data.
2605 */ 2610 */
2606 retval = rt61pci_validate_eeprom(rt2x00dev); 2611 retval = rt61pci_validate_eeprom(rt2x00dev);