2013-04-07 17:46:46

by Adrian Chadd

[permalink] [raw]
Subject: Re: [ath9k-devel] AR9287 ; 2-wire coexistence expected behavior

On 7 April 2013 07:54, sandeep suresh <[email protected]> wrote:
> Hello Mr.Adrian and Mr.Sujith,
> Thanks for your responses. In order to ensure that all of us are on the
> same page and referring to the same code base, some queries:
>
> 1. Please let me know you are referring to freebsd.org or linuxwireless.org
> drivers? Because you are referring to Kite & Kiwi which are in FreeBSD.
> FreeBSD --> http://svn.freebsd.org/base/head/sys/
> Ath9k --> http://linuxwireless.org/en/users/Drivers/ath9k
> Because currently I am using ath9k drivers only from linuxwireless.org.

Kite = AR9285
Kiwi = AR9287

I know ath9k enough to be (somewhat) helpful and dangerous. But I'm
the FreeBSD guy here; I know the HAL and FreeBSD code much better.

The FreeBSD code is closer to what our reference driver does / did
than Linux, at least for the legacy chipset support.

> 2. Which version of ath9k driver is stable & complete from 2-wire/3-wire
> coexistence? The reason for this query is that I downloaded
> compat-wireless-3.6.8-1 which contains the function ath9k_start_btcoex() in
> which the Weight register is initialized. But this function is not available
> in some of the stable versions of ath9k which I am using.

Not unsurprising. ath9k's btcoex code is (relatively) recent. it
sounds like you've been using an older kernel.

> 3. What exactly are Kite and Kiwi? Are these third party modules using
> AR9287 Atheros chipsets? I did not see this in linuxwireless.org but only in
> FreeBSD.

They're chip names. AR9285 = Kite, AR9287 = Kiwi.

> 4. Just wanted to confirm if the address of the weight register that you are
> mentioning below for 2-wire coexistence is : AR_BT_COEX_WEIGHT (0x8174)

Yup. That's what it is for AR5146 -> AR9287. AR9380 changed this.

> 5. Just wanted to cross check if the weight register mentioned is for 2-wire
> coexistence? The reason for this doubt is I see bt_freq, bt_prio bits
> in BT weight register and these bits are relevant to BT_FREQUENCY and
> BT_PRIORITY lines which are relevant for 3-wire coexistence?

The weight register is still used. I just don't quite know what the
table mapping is.

But specifically, as you're effectively trying to implement "bluetooth
stomps everything", what you really want is a table where bt wins each
round, except perhaps for beacon interval (so you send out beacons
reliably.) There should already be static stomp register values for
"BT wins all" and "Wifi wins all." That's all you should need to write
into that register.




Adrian