All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
@ 2011-08-04 17:54 Rajkumar Manoharan
  2011-08-04 18:23 ` Felix Fietkau
  0 siblings, 1 reply; 8+ messages in thread
From: Rajkumar Manoharan @ 2011-08-04 17:54 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Rajkumar Manoharan, Felix Fietkau

The Walsh bit is disabled for regulatory consideration.

As per the FCC rulings, only transmissions that are completely
non-coherent, are allowed to waive the array gain contribution
to EIRP for multi-transmit configurations. The use of 2-stream
with 2 transmit and use of 3-steam with 3 transmit qualifies
for this spatial multiplexing MIMO classification as long as
the streams are directly mapped to each radio (not Walsh spread
prior to splitting to multiple radios)

Cc: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
 .../net/wireless/ath/ath9k/ar9003_2p2_initvals.h   |    2 +-
 drivers/net/wireless/ath/ath9k/ar9003_phy.c        |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h b/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
index 2339728..28b44b0 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
+++ b/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
@@ -636,7 +636,7 @@ static const u32 ar9300_2p2_baseband_postamble[][5] = {
 	{0x00009e44, 0x02321e27, 0x02321e27, 0x02291e27, 0x02291e27},
 	{0x00009e48, 0x5030201a, 0x5030201a, 0x50302012, 0x50302012},
 	{0x00009fc8, 0x0003f000, 0x0003f000, 0x0001a000, 0x0001a000},
-	{0x0000a204, 0x000037c0, 0x000037c4, 0x000037c4, 0x000037c0},
+	{0x0000a204, 0x000036c0, 0x000036c4, 0x000036c4, 0x000036c0},
 	{0x0000a208, 0x00000104, 0x00000104, 0x00000004, 0x00000004},
 	{0x0000a22c, 0x01026a2f, 0x01026a2f, 0x01026a2f, 0x01026a2f},
 	{0x0000a230, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b},
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
index 1baca8e..c906e9e 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
@@ -482,7 +482,7 @@ static void ar9003_hw_set_channel_regs(struct ath_hw *ah,
 		(REG_READ(ah, AR_PHY_GEN_CTRL) & AR_PHY_GC_ENABLE_DAC_FIFO);
 
 	/* Enable 11n HT, 20 MHz */
-	phymode = AR_PHY_GC_HT_EN | AR_PHY_GC_SINGLE_HT_LTF1 | AR_PHY_GC_WALSH |
+	phymode = AR_PHY_GC_HT_EN | AR_PHY_GC_SINGLE_HT_LTF1 |
 		  AR_PHY_GC_SHORT_GI_40 | enableDacFifo;
 
 	/* Configure baseband for dynamic 20/40 operation */
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-04 17:54 [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains Rajkumar Manoharan
@ 2011-08-04 18:23 ` Felix Fietkau
  2011-08-05  2:54   ` Rajkumar Manoharan
  0 siblings, 1 reply; 8+ messages in thread
From: Felix Fietkau @ 2011-08-04 18:23 UTC (permalink / raw)
  To: Rajkumar Manoharan; +Cc: linville, linux-wireless

On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
> The Walsh bit is disabled for regulatory consideration.
>
> As per the FCC rulings, only transmissions that are completely
> non-coherent, are allowed to waive the array gain contribution
> to EIRP for multi-transmit configurations. The use of 2-stream
> with 2 transmit and use of 3-steam with 3 transmit qualifies
> for this spatial multiplexing MIMO classification as long as
> the streams are directly mapped to each radio (not Walsh spread
> prior to splitting to multiple radios)
I think ath9k does not waive the array gain contribution. I haven't 
checked AR9003, but on AR9002 and older, it explicitly includes the 
array gain contribution in the tx power limit calculation. I'm not sure 
that unconditionally disabling spatial spreading is the right way to 
deal with this.

- Felix

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-04 18:23 ` Felix Fietkau
@ 2011-08-05  2:54   ` Rajkumar Manoharan
  2011-08-05  6:35     ` Adrian Chadd
  2011-08-05  8:36     ` Rajkumar Manoharan
  0 siblings, 2 replies; 8+ messages in thread
From: Rajkumar Manoharan @ 2011-08-05  2:54 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linville, linux-wireless

On Thu, Aug 04, 2011 at 08:23:28PM +0200, Felix Fietkau wrote:
> On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
> >The Walsh bit is disabled for regulatory consideration.
> >
> >As per the FCC rulings, only transmissions that are completely
> >non-coherent, are allowed to waive the array gain contribution
> >to EIRP for multi-transmit configurations. The use of 2-stream
> >with 2 transmit and use of 3-steam with 3 transmit qualifies
> >for this spatial multiplexing MIMO classification as long as
> >the streams are directly mapped to each radio (not Walsh spread
> >prior to splitting to multiple radios)
> I think ath9k does not waive the array gain contribution. I haven't
> checked AR9003, but on AR9002 and older, it explicitly includes the
> array gain contribution in the tx power limit calculation. I'm not
> sure that unconditionally disabling spatial spreading is the right
> way to deal with this.
>
We might violate the FCC rule with 2x2 config(3dB higher at 2-stream)
if this bit is enabled. Based on chainmask we can disable Walsh bit.
Any comments?

--
Rajkumar

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-05  2:54   ` Rajkumar Manoharan
@ 2011-08-05  6:35     ` Adrian Chadd
  2011-08-05  7:24       ` Rajkumar Manoharan
  2011-08-05  8:36     ` Rajkumar Manoharan
  1 sibling, 1 reply; 8+ messages in thread
From: Adrian Chadd @ 2011-08-05  6:35 UTC (permalink / raw)
  To: Rajkumar Manoharan; +Cc: Felix Fietkau, linville, linux-wireless

There's already code in the driver that subtracts 3 and 5 dB from the
max TX power.

Some NICs have value=0 for pwrdecrease2chain and pwrdecrease3chain; I
have a feeling the EEPROMs in those have been programmed assuming 2 or
3 chain TX with the current setting (ie, AR_PHY_FC_WALSH in
AR_PHY_TURBO). If they've calibrated the EEPROM settings based on that
bit being set for 2 or 3 chain TX, you may find they're already doing
the "right" thing. Flipping that bit off (and unconditionally
subtracting TX power) may result in a lower TX power than regulatory?

I do suggest that someone with the relevant test equipment do some
investigation into what the behaviour is of a variety of NICs. I'd
love to survey what's going on but I'd have to acquire access to a
spectrum analyser.



Adrian

On 5 August 2011 10:54, Rajkumar Manoharan <rmanohar@qca.qualcomm.com> wrote:
> On Thu, Aug 04, 2011 at 08:23:28PM +0200, Felix Fietkau wrote:
>> On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
>> >The Walsh bit is disabled for regulatory consideration.
>> >
>> >As per the FCC rulings, only transmissions that are completely
>> >non-coherent, are allowed to waive the array gain contribution
>> >to EIRP for multi-transmit configurations. The use of 2-stream
>> >with 2 transmit and use of 3-steam with 3 transmit qualifies
>> >for this spatial multiplexing MIMO classification as long as
>> >the streams are directly mapped to each radio (not Walsh spread
>> >prior to splitting to multiple radios)
>> I think ath9k does not waive the array gain contribution. I haven't
>> checked AR9003, but on AR9002 and older, it explicitly includes the
>> array gain contribution in the tx power limit calculation. I'm not
>> sure that unconditionally disabling spatial spreading is the right
>> way to deal with this.
>>
> We might violate the FCC rule with 2x2 config(3dB higher at 2-stream)
> if this bit is enabled. Based on chainmask we can disable Walsh bit.
> Any comments?
>
> --
> Rajkumar
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-05  6:35     ` Adrian Chadd
@ 2011-08-05  7:24       ` Rajkumar Manoharan
  0 siblings, 0 replies; 8+ messages in thread
From: Rajkumar Manoharan @ 2011-08-05  7:24 UTC (permalink / raw)
  To: Adrian Chadd; +Cc: Felix Fietkau, linville, linux-wireless

On Fri, Aug 05, 2011 at 02:35:44PM +0800, Adrian Chadd wrote:
> There's already code in the driver that subtracts 3 and 5 dB from the
> max TX power.
> 
> Some NICs have value=0 for pwrdecrease2chain and pwrdecrease3chain; I
> have a feeling the EEPROMs in those have been programmed assuming 2 or
> 3 chain TX with the current setting (ie, AR_PHY_FC_WALSH in
> AR_PHY_TURBO). If they've calibrated the EEPROM settings based on that
> bit being set for 2 or 3 chain TX, you may find they're already doing
> the "right" thing. Flipping that bit off (and unconditionally
> subtracting TX power) may result in a lower TX power than regulatory?
> 
Those pwrdecrease fields are applicable for AR9280 chips not for AR9003.
> I do suggest that someone with the relevant test equipment do some
> investigation into what the behaviour is of a variety of NICs. I'd
> love to survey what's going on but I'd have to acquire access to a
> spectrum analyser.
>
These changes were done based on our system team's comments.

--
Rajkumar
> 
> 
> Adrian
> 
> On 5 August 2011 10:54, Rajkumar Manoharan <rmanohar@qca.qualcomm.com> wrote:
> > On Thu, Aug 04, 2011 at 08:23:28PM +0200, Felix Fietkau wrote:
> >> On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
> >> >The Walsh bit is disabled for regulatory consideration.
> >> >
> >> >As per the FCC rulings, only transmissions that are completely
> >> >non-coherent, are allowed to waive the array gain contribution
> >> >to EIRP for multi-transmit configurations. The use of 2-stream
> >> >with 2 transmit and use of 3-steam with 3 transmit qualifies
> >> >for this spatial multiplexing MIMO classification as long as
> >> >the streams are directly mapped to each radio (not Walsh spread
> >> >prior to splitting to multiple radios)
> >> I think ath9k does not waive the array gain contribution. I haven't
> >> checked AR9003, but on AR9002 and older, it explicitly includes the
> >> array gain contribution in the tx power limit calculation. I'm not
> >> sure that unconditionally disabling spatial spreading is the right
> >> way to deal with this.
> >>
> > We might violate the FCC rule with 2x2 config(3dB higher at 2-stream)
> > if this bit is enabled. Based on chainmask we can disable Walsh bit.
> > Any comments?
> >
> > --
> > Rajkumar
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-05  2:54   ` Rajkumar Manoharan
  2011-08-05  6:35     ` Adrian Chadd
@ 2011-08-05  8:36     ` Rajkumar Manoharan
  2011-08-05  9:48       ` Felix Fietkau
  1 sibling, 1 reply; 8+ messages in thread
From: Rajkumar Manoharan @ 2011-08-05  8:36 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linville, linux-wireless

On Fri, Aug 05, 2011 at 08:24:53AM +0530, Rajkumar Manoharan wrote:
> On Thu, Aug 04, 2011 at 08:23:28PM +0200, Felix Fietkau wrote:
> > On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
> > >The Walsh bit is disabled for regulatory consideration.
> > >
> > >As per the FCC rulings, only transmissions that are completely
> > >non-coherent, are allowed to waive the array gain contribution
> > >to EIRP for multi-transmit configurations. The use of 2-stream
> > >with 2 transmit and use of 3-steam with 3 transmit qualifies
> > >for this spatial multiplexing MIMO classification as long as
> > >the streams are directly mapped to each radio (not Walsh spread
> > >prior to splitting to multiple radios)
> > I think ath9k does not waive the array gain contribution. I haven't
> > checked AR9003, but on AR9002 and older, it explicitly includes the
> > array gain contribution in the tx power limit calculation. I'm not
> > sure that unconditionally disabling spatial spreading is the right
> > way to deal with this.
> >
> We might violate the FCC rule with 2x2 config(3dB higher at 2-stream)
> if this bit is enabled. Based on chainmask we can disable Walsh bit.

This change does not affect 3x3, since we don't use 2-chain for 2-stream.
And Walsh mode would follow INI setting for 2x2 or 3x3 config.

--
Rajkumar

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-05  8:36     ` Rajkumar Manoharan
@ 2011-08-05  9:48       ` Felix Fietkau
  2011-08-05 11:50         ` Adrian Chadd
  0 siblings, 1 reply; 8+ messages in thread
From: Felix Fietkau @ 2011-08-05  9:48 UTC (permalink / raw)
  To: Rajkumar Manoharan; +Cc: linville, linux-wireless

On 2011-08-05 10:36 AM, Rajkumar Manoharan wrote:
> On Fri, Aug 05, 2011 at 08:24:53AM +0530, Rajkumar Manoharan wrote:
>>  On Thu, Aug 04, 2011 at 08:23:28PM +0200, Felix Fietkau wrote:
>>  >  On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
>>  >  >The Walsh bit is disabled for regulatory consideration.
>>  >  >
>>  >  >As per the FCC rulings, only transmissions that are completely
>>  >  >non-coherent, are allowed to waive the array gain contribution
>>  >  >to EIRP for multi-transmit configurations. The use of 2-stream
>>  >  >with 2 transmit and use of 3-steam with 3 transmit qualifies
>>  >  >for this spatial multiplexing MIMO classification as long as
>>  >  >the streams are directly mapped to each radio (not Walsh spread
>>  >  >prior to splitting to multiple radios)
>>  >  I think ath9k does not waive the array gain contribution. I haven't
>>  >  checked AR9003, but on AR9002 and older, it explicitly includes the
>>  >  array gain contribution in the tx power limit calculation. I'm not
>>  >  sure that unconditionally disabling spatial spreading is the right
>>  >  way to deal with this.
>>  >
>>  We might violate the FCC rule with 2x2 config(3dB higher at 2-stream)
>>  if this bit is enabled. Based on chainmask we can disable Walsh bit.
>
> This change does not affect 3x3, since we don't use 2-chain for 2-stream.
> And Walsh mode would follow INI setting for 2x2 or 3x3 config.
The thing is, on many channels the the card is allowed to transmit at up 
to 27 dBm, and often the hardware does not even get close to that. Why 
limit tx power by disabling this bit in cases where it's not even close 
to going over the limit.
How about disabling it only if the combined txpower is within x dBm of 
the regulatory limit, or simply adding the same kind of multi-chain 
limit calculation that is being used on AR9280?

- Felix

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains
  2011-08-05  9:48       ` Felix Fietkau
@ 2011-08-05 11:50         ` Adrian Chadd
  0 siblings, 0 replies; 8+ messages in thread
From: Adrian Chadd @ 2011-08-05 11:50 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: Rajkumar Manoharan, linville, linux-wireless

.. question: are the regulatory limits programmed into the cards
taking this spreading into effect?



Adrian

On 5 August 2011 17:48, Felix Fietkau <nbd@openwrt.org> wrote:
> On 2011-08-05 10:36 AM, Rajkumar Manoharan wrote:
>>
>> On Fri, Aug 05, 2011 at 08:24:53AM +0530, Rajkumar Manoharan wrote:
>>>
>>>  On Thu, Aug 04, 2011 at 08:23:28PM +0200, Felix Fietkau wrote:
>>>  >  On 2011-08-04 7:54 PM, Rajkumar Manoharan wrote:
>>>  >  >The Walsh bit is disabled for regulatory consideration.
>>>  >  >
>>>  >  >As per the FCC rulings, only transmissions that are completely
>>>  >  >non-coherent, are allowed to waive the array gain contribution
>>>  >  >to EIRP for multi-transmit configurations. The use of 2-stream
>>>  >  >with 2 transmit and use of 3-steam with 3 transmit qualifies
>>>  >  >for this spatial multiplexing MIMO classification as long as
>>>  >  >the streams are directly mapped to each radio (not Walsh spread
>>>  >  >prior to splitting to multiple radios)
>>>  >  I think ath9k does not waive the array gain contribution. I haven't
>>>  >  checked AR9003, but on AR9002 and older, it explicitly includes the
>>>  >  array gain contribution in the tx power limit calculation. I'm not
>>>  >  sure that unconditionally disabling spatial spreading is the right
>>>  >  way to deal with this.
>>>  >
>>>  We might violate the FCC rule with 2x2 config(3dB higher at 2-stream)
>>>  if this bit is enabled. Based on chainmask we can disable Walsh bit.
>>
>> This change does not affect 3x3, since we don't use 2-chain for 2-stream.
>> And Walsh mode would follow INI setting for 2x2 or 3x3 config.
>
> The thing is, on many channels the the card is allowed to transmit at up to
> 27 dBm, and often the hardware does not even get close to that. Why limit tx
> power by disabling this bit in cases where it's not even close to going over
> the limit.
> How about disabling it only if the combined txpower is within x dBm of the
> regulatory limit, or simply adding the same kind of multi-chain limit
> calculation that is being used on AR9280?
>
> - Felix
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-08-05 11:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-04 17:54 [PATCH v3 11/13] ath9k_hw: Disable Walsh spatial spreading for 2 chains Rajkumar Manoharan
2011-08-04 18:23 ` Felix Fietkau
2011-08-05  2:54   ` Rajkumar Manoharan
2011-08-05  6:35     ` Adrian Chadd
2011-08-05  7:24       ` Rajkumar Manoharan
2011-08-05  8:36     ` Rajkumar Manoharan
2011-08-05  9:48       ` Felix Fietkau
2011-08-05 11:50         ` Adrian Chadd

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.