diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/wireless/ath/ar9170/mac.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/wireless/ath/ar9170/mac.c')
-rw-r--r-- | drivers/net/wireless/ath/ar9170/mac.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ar9170/mac.c b/drivers/net/wireless/ath/ar9170/mac.c index 614e3218a2bc..857e86104295 100644 --- a/drivers/net/wireless/ath/ar9170/mac.c +++ b/drivers/net/wireless/ath/ar9170/mac.c | |||
@@ -35,6 +35,9 @@ | |||
35 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 35 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
36 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 36 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
37 | */ | 37 | */ |
38 | |||
39 | #include <asm/unaligned.h> | ||
40 | |||
38 | #include "ar9170.h" | 41 | #include "ar9170.h" |
39 | #include "cmd.h" | 42 | #include "cmd.h" |
40 | 43 | ||
@@ -114,7 +117,7 @@ int ar9170_set_qos(struct ar9170 *ar) | |||
114 | ar9170_regwrite(AR9170_MAC_REG_AC1_AC0_TXOP, | 117 | ar9170_regwrite(AR9170_MAC_REG_AC1_AC0_TXOP, |
115 | ar->edcf[0].txop | ar->edcf[1].txop << 16); | 118 | ar->edcf[0].txop | ar->edcf[1].txop << 16); |
116 | ar9170_regwrite(AR9170_MAC_REG_AC3_AC2_TXOP, | 119 | ar9170_regwrite(AR9170_MAC_REG_AC3_AC2_TXOP, |
117 | ar->edcf[1].txop | ar->edcf[3].txop << 16); | 120 | ar->edcf[2].txop | ar->edcf[3].txop << 16); |
118 | 121 | ||
119 | ar9170_regwrite_finish(); | 122 | ar9170_regwrite_finish(); |
120 | 123 | ||
@@ -227,11 +230,8 @@ static int ar9170_set_mac_reg(struct ar9170 *ar, const u32 reg, const u8 *mac) | |||
227 | 230 | ||
228 | ar9170_regwrite_begin(ar); | 231 | ar9170_regwrite_begin(ar); |
229 | 232 | ||
230 | ar9170_regwrite(reg, | 233 | ar9170_regwrite(reg, get_unaligned_le32(mac)); |
231 | (mac[3] << 24) | (mac[2] << 16) | | 234 | ar9170_regwrite(reg + 4, get_unaligned_le16(mac + 4)); |
232 | (mac[1] << 8) | mac[0]); | ||
233 | |||
234 | ar9170_regwrite(reg + 4, (mac[5] << 8) | mac[4]); | ||
235 | 235 | ||
236 | ar9170_regwrite_finish(); | 236 | ar9170_regwrite_finish(); |
237 | 237 | ||
@@ -311,13 +311,14 @@ static int ar9170_set_promiscouous(struct ar9170 *ar) | |||
311 | 311 | ||
312 | int ar9170_set_operating_mode(struct ar9170 *ar) | 312 | int ar9170_set_operating_mode(struct ar9170 *ar) |
313 | { | 313 | { |
314 | struct ath_common *common = &ar->common; | ||
314 | u32 pm_mode = AR9170_MAC_REG_POWERMGT_DEFAULTS; | 315 | u32 pm_mode = AR9170_MAC_REG_POWERMGT_DEFAULTS; |
315 | u8 *mac_addr, *bssid; | 316 | u8 *mac_addr, *bssid; |
316 | int err; | 317 | int err; |
317 | 318 | ||
318 | if (ar->vif) { | 319 | if (ar->vif) { |
319 | mac_addr = ar->mac_addr; | 320 | mac_addr = common->macaddr; |
320 | bssid = ar->bssid; | 321 | bssid = common->curbssid; |
321 | 322 | ||
322 | switch (ar->vif->type) { | 323 | switch (ar->vif->type) { |
323 | case NL80211_IFTYPE_MESH_POINT: | 324 | case NL80211_IFTYPE_MESH_POINT: |