2012-04-28 06:27:48

by Rajkumar Manoharan

[permalink] [raw]
Subject: [PATCH] Revert "ath9k_hw: Fix incorrect spur_freq_sd for AR9003"

This reverts commit a844adfd7bee4edc66d337de6c33b348e83552a8.

spur_freq_sd (for self-corr in AGC) is defined with respect to the
center of each 20MHz channel while spur_phase_delta (for self-corr
in Rx and spur data filter) is defined with respect to the center
of current RF channel.

So in short, we need to subtract spur_freq_sd (for self-corr in AGC)
by the offset between the center of primary20 and the center of RF
channel in SW. This offset could be +/10 MHz for dynamic 40.

Cc: Madhan Jaganathan <[email protected]>
Signed-off-by: Kai Shi <[email protected]>
Signed-off-by: Rajkumar Manoharan <[email protected]>
---
drivers/net/wireless/ath/ath9k/ar9003_phy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
index 5358553..11abb97 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
@@ -373,7 +373,7 @@ static void ar9003_hw_spur_ofdm_work(struct ath_hw *ah,
else
spur_subchannel_sd = 0;

- spur_freq_sd = (freq_offset << 9) / 11;
+ spur_freq_sd = ((freq_offset + 10) << 9) / 11;

} else {
if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL,
@@ -382,7 +382,7 @@ static void ar9003_hw_spur_ofdm_work(struct ath_hw *ah,
else
spur_subchannel_sd = 1;

- spur_freq_sd = (freq_offset << 9) / 11;
+ spur_freq_sd = ((freq_offset - 10) << 9) / 11;

}

--
1.7.10



2012-04-30 18:32:48

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] Revert "ath9k_hw: Fix incorrect spur_freq_sd for AR9003"

On Sat, Apr 28, 2012 at 11:58:41AM +0530, Rajkumar Manoharan wrote:
> This reverts commit a844adfd7bee4edc66d337de6c33b348e83552a8.
>
> spur_freq_sd (for self-corr in AGC) is defined with respect to the
> center of each 20MHz channel while spur_phase_delta (for self-corr
> in Rx and spur data filter) is defined with respect to the center
> of current RF channel.
>
> So in short, we need to subtract spur_freq_sd (for self-corr in AGC)
> by the offset between the center of primary20 and the center of RF
> channel in SW. This offset could be +/10 MHz for dynamic 40.
>
> Cc: Madhan Jaganathan <[email protected]>
> Signed-off-by: Kai Shi <[email protected]>
> Signed-off-by: Rajkumar Manoharan <[email protected]>

What actual bug is this causing? Should this be applied to 3.4?

> ---
> drivers/net/wireless/ath/ath9k/ar9003_phy.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
> index 5358553..11abb97 100644
> --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
> +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
> @@ -373,7 +373,7 @@ static void ar9003_hw_spur_ofdm_work(struct ath_hw *ah,
> else
> spur_subchannel_sd = 0;
>
> - spur_freq_sd = (freq_offset << 9) / 11;
> + spur_freq_sd = ((freq_offset + 10) << 9) / 11;
>
> } else {
> if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL,
> @@ -382,7 +382,7 @@ static void ar9003_hw_spur_ofdm_work(struct ath_hw *ah,
> else
> spur_subchannel_sd = 1;
>
> - spur_freq_sd = (freq_offset << 9) / 11;
> + spur_freq_sd = ((freq_offset - 10) << 9) / 11;
>
> }
>
> --
> 1.7.10
>
>

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2012-05-01 03:21:16

by Rajkumar Manoharan

[permalink] [raw]
Subject: Re: [PATCH] Revert "ath9k_hw: Fix incorrect spur_freq_sd for AR9003"

On Mon, Apr 30, 2012 at 02:22:01PM -0400, John W. Linville wrote:
> On Sat, Apr 28, 2012 at 11:58:41AM +0530, Rajkumar Manoharan wrote:
> > This reverts commit a844adfd7bee4edc66d337de6c33b348e83552a8.
> >
> > spur_freq_sd (for self-corr in AGC) is defined with respect to the
> > center of each 20MHz channel while spur_phase_delta (for self-corr
> > in Rx and spur data filter) is defined with respect to the center
> > of current RF channel.
> >
> > So in short, we need to subtract spur_freq_sd (for self-corr in AGC)
> > by the offset between the center of primary20 and the center of RF
> > channel in SW. This offset could be +/10 MHz for dynamic 40.
> >
> > Cc: Madhan Jaganathan <[email protected]>
> > Signed-off-by: Kai Shi <[email protected]>
> > Signed-off-by: Rajkumar Manoharan <[email protected]>
>
> What actual bug is this causing? Should this be applied to 3.4?
>
The original commmit is causing low rate's sensitivity degrade in ht40
mode. Will send v2 patch with updated commit log. And yes it should be
applied to 3.4.

-Rajkumar