Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b02f5d1a authored by Nick Kossifidis's avatar Nick Kossifidis Committed by John W. Linville
Browse files

ath5k: Tweak phy activate to rx start delay based on bwmode



 * Tweak phy activation -> rx delay for different bwmodes

 Signed-off-by: default avatarNick Kossifidis <mickflemm@gmail.com>

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c2b0ebef
Loading
Loading
Loading
Loading
+7 −4
Original line number Original line Diff line number Diff line
@@ -3356,8 +3356,6 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
	/*
	/*
	 * On 5211+ read activation -> rx delay
	 * On 5211+ read activation -> rx delay
	 * and use it.
	 * and use it.
	 *
	 * TODO: Half/quarter rate support
	 */
	 */
	if (ah->ah_version != AR5K_AR5210) {
	if (ah->ah_version != AR5K_AR5210) {
		u32 delay;
		u32 delay;
@@ -3365,8 +3363,13 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
			AR5K_PHY_RX_DELAY_M;
			AR5K_PHY_RX_DELAY_M;
		delay = (channel->hw_value & CHANNEL_CCK) ?
		delay = (channel->hw_value & CHANNEL_CCK) ?
			((delay << 2) / 22) : (delay / 10);
			((delay << 2) / 22) : (delay / 10);

		if (ah->ah_bwmode == AR5K_BWMODE_10MHZ)
		udelay(100 + (2 * delay));
			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 {
	} else {
		mdelay(1);
		mdelay(1);
	}
	}