aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-10-19 02:33:40 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-10-30 16:50:37 -0400
commit0a3b7bac673ee9462f5defe808609746d27af50d (patch)
tree5bb366282dc49d28406dc2a8e5afb45c2df2f5c0
parentdc51dd503953a8bed545d10eb89fb3340a98879b (diff)
ath9k_hw: make both analog channel change routines return int
This allows us to later define a callback for both. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c24
-rw-r--r--drivers/net/wireless/ath/ath9k/phy.c14
-rw-r--r--drivers/net/wireless/ath/ath9k/phy.h7
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 */
71bool 71int ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
72ath9k_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 */
166void ath9k_hw_ar9280_set_channel(struct ath_hw *ah, 165int 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
20void ath9k_hw_ar9280_set_channel(struct ath_hw *ah, 20int ath9k_hw_ar9280_set_channel(struct ath_hw *ah, struct ath9k_channel *chan);
21 struct ath9k_channel 21int ath9k_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan);
22 *chan);
23bool ath9k_hw_set_channel(struct ath_hw *ah,
24 struct ath9k_channel *chan);
25void ath9k_hw_write_regs(struct ath_hw *ah, u32 modesIndex, 22void ath9k_hw_write_regs(struct ath_hw *ah, u32 modesIndex,
26 u32 freqIndex, int regWrites); 23 u32 freqIndex, int regWrites);
27bool ath9k_hw_set_rf_regs(struct ath_hw *ah, 24bool ath9k_hw_set_rf_regs(struct ath_hw *ah,