Browse Source

ath9k_hw: fix synth delay for half/quarter channels

The radio needs twice / four times as much time to stabilize for half/quarter
channels.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Felix Fietkau 14 years ago
parent
commit
7d865c7080
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/net/wireless/ath/ath9k/ar5008_phy.c

+ 5 - 0
drivers/net/wireless/ath/ath9k/ar5008_phy.c

@@ -627,6 +627,11 @@ static void ar5008_hw_init_bb(struct ath_hw *ah,
 	else
 	else
 		synthDelay /= 10;
 		synthDelay /= 10;
 
 
+	if (IS_CHAN_HALF_RATE(chan))
+		synthDelay *= 2;
+	else if (IS_CHAN_QUARTER_RATE(chan))
+		synthDelay *= 4;
+
 	REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
 	REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
 
 
 	udelay(synthDelay + BASE_ACTIVATE_DELAY);
 	udelay(synthDelay + BASE_ACTIVATE_DELAY);