diff options
author | Mattias Nissler <mattias.nissler@gmx.de> | 2008-08-29 15:05:21 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-29 16:24:11 -0400 |
commit | 2575c11d6ee7266f0f035e55c5056b36597cd336 (patch) | |
tree | ecbe0d61936b31c2c8d072194576d2299f736714 /drivers/net/wireless/rt2x00/rt2x00dev.c | |
parent | 3ee54a07d34fd9b5c34bb1488113fb32be58e38f (diff) |
rt2x00: Only configure hardware when radio is enabled
Some hardware configuration registers such as antenna and channel configuration
can only be written when the radio is enabled. Previously, we didn't consider
this, so some configuration items could be set inconsistently after reenabling
the radio. This patch changes the config() handler to only reprogram the
hardware when the radio is enabled. Configuration changes that are made while
the radio is off are postponed until the radio is switched back on. We also
leave the radio turned off during initialization and only enable it when
requested by mac80211. This allows us to get rid of the DIRTY_CONFIG flag,
because the device is now guaranteed to be completely initialized when brought
up by mac80211.
Signed-off-by: Mattias Nissler <mattias.nissler@gmx.de>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00dev.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 330ab77902f7..5278ae2e374c 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -1014,21 +1014,11 @@ int rt2x00lib_start(struct rt2x00_dev *rt2x00dev) | |||
1014 | if (retval) | 1014 | if (retval) |
1015 | return retval; | 1015 | return retval; |
1016 | 1016 | ||
1017 | /* | ||
1018 | * Enable radio. | ||
1019 | */ | ||
1020 | retval = rt2x00lib_enable_radio(rt2x00dev); | ||
1021 | if (retval) { | ||
1022 | rt2x00lib_uninitialize(rt2x00dev); | ||
1023 | return retval; | ||
1024 | } | ||
1025 | |||
1026 | rt2x00dev->intf_ap_count = 0; | 1017 | rt2x00dev->intf_ap_count = 0; |
1027 | rt2x00dev->intf_sta_count = 0; | 1018 | rt2x00dev->intf_sta_count = 0; |
1028 | rt2x00dev->intf_associated = 0; | 1019 | rt2x00dev->intf_associated = 0; |
1029 | 1020 | ||
1030 | set_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags); | 1021 | set_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags); |
1031 | set_bit(DEVICE_STATE_DIRTY_CONFIG, &rt2x00dev->flags); | ||
1032 | 1022 | ||
1033 | return 0; | 1023 | return 0; |
1034 | } | 1024 | } |