|
@@ -3356,8 +3356,6 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
|
|
|
/*
|
|
|
* On 5211+ read activation -> rx delay
|
|
|
* and use it.
|
|
|
- *
|
|
|
- * TODO: Half/quarter rate support
|
|
|
*/
|
|
|
if (ah->ah_version != AR5K_AR5210) {
|
|
|
u32 delay;
|
|
@@ -3365,8 +3363,13 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
|
|
|
AR5K_PHY_RX_DELAY_M;
|
|
|
delay = (channel->hw_value & CHANNEL_CCK) ?
|
|
|
((delay << 2) / 22) : (delay / 10);
|
|
|
-
|
|
|
- udelay(100 + (2 * delay));
|
|
|
+ if (ah->ah_bwmode == AR5K_BWMODE_10MHZ)
|
|
|
+ delay = delay << 1;
|
|
|
+ if (ah->ah_bwmode == AR5K_BWMODE_5MHZ)
|
|
|
+ delay = delay << 2;
|
|
|
+ /* XXX: /2 on turbo ? Let's be safe
|
|
|
+ * for now */
|
|
|
+ udelay(100 + delay);
|
|
|
} else {
|
|
|
mdelay(1);
|
|
|
}
|