diff options
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.c | 24 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/phy.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/phy.h | 7 |
3 files changed, 22 insertions, 23 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index 4c3ff2e429e7..d4dc1cbe00aa 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c | |||
@@ -1868,6 +1868,7 @@ static bool ath9k_hw_channel_change(struct ath_hw *ah, | |||
1868 | struct ath_common *common = ath9k_hw_common(ah); | 1868 | struct ath_common *common = ath9k_hw_common(ah); |
1869 | struct ieee80211_channel *channel = chan->chan; | 1869 | struct ieee80211_channel *channel = chan->chan; |
1870 | u32 synthDelay, qnum; | 1870 | u32 synthDelay, qnum; |
1871 | int r; | ||
1871 | 1872 | ||
1872 | for (qnum = 0; qnum < AR_NUM_QCU; qnum++) { | 1873 | for (qnum = 0; qnum < AR_NUM_QCU; qnum++) { |
1873 | if (ath9k_hw_numtxpending(ah, qnum)) { | 1874 | if (ath9k_hw_numtxpending(ah, qnum)) { |
@@ -1888,14 +1889,14 @@ static bool ath9k_hw_channel_change(struct ath_hw *ah, | |||
1888 | 1889 | ||
1889 | ath9k_hw_set_regs(ah, chan); | 1890 | ath9k_hw_set_regs(ah, chan); |
1890 | 1891 | ||
1891 | if (AR_SREV_9280_10_OR_LATER(ah)) { | 1892 | if (AR_SREV_9280_10_OR_LATER(ah)) |
1892 | ath9k_hw_ar9280_set_channel(ah, chan); | 1893 | r = ath9k_hw_ar9280_set_channel(ah, chan); |
1893 | } else { | 1894 | else |
1894 | if (!(ath9k_hw_set_channel(ah, chan))) { | 1895 | r = ath9k_hw_set_channel(ah, chan); |
1895 | ath_print(common, ATH_DBG_FATAL, | 1896 | if (r) { |
1896 | "Failed to set channel\n"); | 1897 | ath_print(common, ATH_DBG_FATAL, |
1897 | return false; | 1898 | "Failed to set channel\n"); |
1898 | } | 1899 | return false; |
1899 | } | 1900 | } |
1900 | 1901 | ||
1901 | ah->eep_ops->set_txpower(ah, chan, | 1902 | ah->eep_ops->set_txpower(ah, chan, |
@@ -2534,10 +2535,11 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, | |||
2534 | REG_WRITE(ah, AR_RSSI_THR, INIT_RSSI_THR); | 2535 | REG_WRITE(ah, AR_RSSI_THR, INIT_RSSI_THR); |
2535 | 2536 | ||
2536 | if (AR_SREV_9280_10_OR_LATER(ah)) | 2537 | if (AR_SREV_9280_10_OR_LATER(ah)) |
2537 | ath9k_hw_ar9280_set_channel(ah, chan); | 2538 | r = ath9k_hw_ar9280_set_channel(ah, chan); |
2538 | else | 2539 | else |
2539 | if (!(ath9k_hw_set_channel(ah, chan))) | 2540 | r = ath9k_hw_set_channel(ah, chan); |
2540 | return -EIO; | 2541 | if (r) |
2542 | return r; | ||
2541 | 2543 | ||
2542 | for (i = 0; i < AR_NUM_DCU; i++) | 2544 | for (i = 0; i < AR_NUM_DCU; i++) |
2543 | REG_WRITE(ah, AR_DQCUMASK(i), 1 << i); | 2545 | REG_WRITE(ah, AR_DQCUMASK(i), 1 << i); |
diff --git a/drivers/net/wireless/ath/ath9k/phy.c b/drivers/net/wireless/ath/ath9k/phy.c index d50b5ff28b38..bfcb9af4ae3c 100644 --- a/drivers/net/wireless/ath/ath9k/phy.c +++ b/drivers/net/wireless/ath/ath9k/phy.c | |||
@@ -68,8 +68,7 @@ ath9k_hw_write_regs(struct ath_hw *ah, u32 modesIndex, u32 freqIndex, | |||
68 | * the channel value. Assumes writes enabled to analog bus and bank6 register | 68 | * the channel value. Assumes writes enabled to analog bus and bank6 register |
69 | * cache in ah->analogBank6Data. | 69 | * cache in ah->analogBank6Data. |
70 | */ | 70 | */ |
71 | bool | 71 | int ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) |
72 | ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) | ||
73 | { | 72 | { |
74 | struct ath_common *common = ath9k_hw_common(ah); | 73 | struct ath_common *common = ath9k_hw_common(ah); |
75 | u32 channelSel = 0; | 74 | u32 channelSel = 0; |
@@ -94,7 +93,7 @@ ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) | |||
94 | } else { | 93 | } else { |
95 | ath_print(common, ATH_DBG_FATAL, | 94 | ath_print(common, ATH_DBG_FATAL, |
96 | "Invalid channel %u MHz\n", freq); | 95 | "Invalid channel %u MHz\n", freq); |
97 | return false; | 96 | return -EINVAL; |
98 | } | 97 | } |
99 | 98 | ||
100 | channelSel = (channelSel << 2) & 0xff; | 99 | channelSel = (channelSel << 2) & 0xff; |
@@ -127,7 +126,7 @@ ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) | |||
127 | } else { | 126 | } else { |
128 | ath_print(common, ATH_DBG_FATAL, | 127 | ath_print(common, ATH_DBG_FATAL, |
129 | "Invalid channel %u MHz\n", freq); | 128 | "Invalid channel %u MHz\n", freq); |
130 | return false; | 129 | return -EINVAL; |
131 | } | 130 | } |
132 | 131 | ||
133 | reg32 = | 132 | reg32 = |
@@ -139,7 +138,7 @@ ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) | |||
139 | ah->curchan = chan; | 138 | ah->curchan = chan; |
140 | ah->curchan_rad_index = -1; | 139 | ah->curchan_rad_index = -1; |
141 | 140 | ||
142 | return true; | 141 | return 0; |
143 | } | 142 | } |
144 | 143 | ||
145 | /** | 144 | /** |
@@ -163,8 +162,7 @@ ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) | |||
163 | * Channel Frequency = (3/2) * freq_ref * (chansel[8:0] + chanfrac[16:0]/2^10) | 162 | * Channel Frequency = (3/2) * freq_ref * (chansel[8:0] + chanfrac[16:0]/2^10) |
164 | * (freq_ref = 40MHz/(24>>amodeRefSel)) | 163 | * (freq_ref = 40MHz/(24>>amodeRefSel)) |
165 | */ | 164 | */ |
166 | void ath9k_hw_ar9280_set_channel(struct ath_hw *ah, | 165 | int ath9k_hw_ar9280_set_channel(struct ath_hw *ah, struct ath9k_channel *chan) |
167 | struct ath9k_channel *chan) | ||
168 | { | 166 | { |
169 | u16 bMode, fracMode, aModeRefSel = 0; | 167 | u16 bMode, fracMode, aModeRefSel = 0; |
170 | u32 freq, ndiv, channelSel = 0, channelFrac = 0, reg32 = 0; | 168 | u32 freq, ndiv, channelSel = 0, channelFrac = 0, reg32 = 0; |
@@ -252,6 +250,8 @@ void ath9k_hw_ar9280_set_channel(struct ath_hw *ah, | |||
252 | 250 | ||
253 | ah->curchan = chan; | 251 | ah->curchan = chan; |
254 | ah->curchan_rad_index = -1; | 252 | ah->curchan_rad_index = -1; |
253 | |||
254 | return 0; | ||
255 | } | 255 | } |
256 | 256 | ||
257 | /** | 257 | /** |
diff --git a/drivers/net/wireless/ath/ath9k/phy.h b/drivers/net/wireless/ath/ath9k/phy.h index 477b606d09fd..bef9b41d250f 100644 --- a/drivers/net/wireless/ath/ath9k/phy.h +++ b/drivers/net/wireless/ath/ath9k/phy.h | |||
@@ -17,11 +17,8 @@ | |||
17 | #ifndef PHY_H | 17 | #ifndef PHY_H |
18 | #define PHY_H | 18 | #define PHY_H |
19 | 19 | ||
20 | void ath9k_hw_ar9280_set_channel(struct ath_hw *ah, | 20 | int ath9k_hw_ar9280_set_channel(struct ath_hw *ah, struct ath9k_channel *chan); |
21 | struct ath9k_channel | 21 | int ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan); |
22 | *chan); | ||
23 | bool ath9k_hw_set_channel(struct ath_hw *ah, | ||
24 | struct ath9k_channel *chan); | ||
25 | void ath9k_hw_write_regs(struct ath_hw *ah, u32 modesIndex, | 22 | void ath9k_hw_write_regs(struct ath_hw *ah, u32 modesIndex, |
26 | u32 freqIndex, int regWrites); | 23 | u32 freqIndex, int regWrites); |
27 | bool ath9k_hw_set_rf_regs(struct ath_hw *ah, | 24 | bool ath9k_hw_set_rf_regs(struct ath_hw *ah, |