diff options
Diffstat (limited to 'drivers/net/wireless/ath/ar9170/mac.c')
-rw-r--r-- | drivers/net/wireless/ath/ar9170/mac.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ar9170/mac.c b/drivers/net/wireless/ath/ar9170/mac.c index 706262fb0924..d9f1f46de183 100644 --- a/drivers/net/wireless/ath/ar9170/mac.c +++ b/drivers/net/wireless/ath/ar9170/mac.c | |||
@@ -38,6 +38,55 @@ | |||
38 | #include "ar9170.h" | 38 | #include "ar9170.h" |
39 | #include "cmd.h" | 39 | #include "cmd.h" |
40 | 40 | ||
41 | int ar9170_set_dyn_sifs_ack(struct ar9170 *ar) | ||
42 | { | ||
43 | u32 val; | ||
44 | |||
45 | if (conf_is_ht40(&ar->hw->conf)) | ||
46 | val = 0x010a; | ||
47 | else { | ||
48 | if (ar->hw->conf.channel->band == IEEE80211_BAND_2GHZ) | ||
49 | val = 0x105; | ||
50 | else | ||
51 | val = 0x104; | ||
52 | } | ||
53 | |||
54 | return ar9170_write_reg(ar, AR9170_MAC_REG_DYNAMIC_SIFS_ACK, val); | ||
55 | } | ||
56 | |||
57 | int ar9170_set_slot_time(struct ar9170 *ar) | ||
58 | { | ||
59 | u32 slottime = 20; | ||
60 | |||
61 | if (!ar->vif) | ||
62 | return 0; | ||
63 | |||
64 | if ((ar->hw->conf.channel->band == IEEE80211_BAND_5GHZ) || | ||
65 | ar->vif->bss_conf.use_short_slot) | ||
66 | slottime = 9; | ||
67 | |||
68 | return ar9170_write_reg(ar, AR9170_MAC_REG_SLOT_TIME, slottime << 10); | ||
69 | } | ||
70 | |||
71 | int ar9170_set_basic_rates(struct ar9170 *ar) | ||
72 | { | ||
73 | u8 cck, ofdm; | ||
74 | |||
75 | if (!ar->vif) | ||
76 | return 0; | ||
77 | |||
78 | ofdm = ar->vif->bss_conf.basic_rates >> 4; | ||
79 | |||
80 | /* FIXME: is still necessary? */ | ||
81 | if (ar->hw->conf.channel->band == IEEE80211_BAND_5GHZ) | ||
82 | cck = 0; | ||
83 | else | ||
84 | cck = ar->vif->bss_conf.basic_rates & 0xf; | ||
85 | |||
86 | return ar9170_write_reg(ar, AR9170_MAC_REG_BASIC_RATE, | ||
87 | ofdm << 8 | cck); | ||
88 | } | ||
89 | |||
41 | int ar9170_set_qos(struct ar9170 *ar) | 90 | int ar9170_set_qos(struct ar9170 *ar) |
42 | { | 91 | { |
43 | ar9170_regwrite_begin(ar); | 92 | ar9170_regwrite_begin(ar); |