2010-03-04 00:43:58

by Luis R. Rodriguez

[permalink] [raw]
Subject: Linux Bluetooth Coexistence documentation in general and for ath9k

Marcel, a question for you below.

The question of Bluetooth coexistence pops up here, on IRC and on bug
reports quite too often so I've stuffed what I could onto a page with
a few references / code and about ath9k's schemes for BT coexistence,
feel free to extend or correct:

http://wireless.kernel.org/en/users/Documentation/Bluetooth-coexistence
http://wireless.kernel.org/en/users/Drivers/ath9k/btcoex

I'm still not sure if "2-wire" and "3-wire" are generic terms and if
someone owns a trademark on them or what, but looking down the road I
think it would be nice to export this information through nl80211, if
a device supports any of these BT-coex schemes and if so, perhaps
display the current signal status of:

* WLAN_ACTIVE
* BT_PRIORITY
* BT_STATE

I do wonder if this could be useful to network applets like network
manager/connman. The other BT coex schemes are BT specific it seems
and not sure if those devices can expose that information out and
inform userspace of certain events.

Marcel, does the BlueZ support exporting if certain bt-coex schemes
are supported like AFH, channel skipping, TDM, and also if they are
being used and details of that?

Luis


2010-03-04 05:10:17

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: Linux Bluetooth Coexistence documentation in general and for ath9k

On Wed, Mar 3, 2010 at 4:59 PM, Bastien Nocera <[email protected]> wrote:
> On Wed, 2010-03-03 at 16:43 -0800, Luis R. Rodriguez wrote:
>> Marcel, a question for you below.
>>
>> The question of Bluetooth coexistence pops up here, on IRC and on bug
>> reports quite too often so I've stuffed what I could onto a page with
>> a few references / code and about ath9k's schemes for BT coexistence,
>> feel free to extend or correct:
> <snip>
>> I do wonder if this could be useful to network applets like network
>> manager/connman.
>
> Not really. To me, it sounds like a "make it work" button. The kernel
> bits of Bluetooth should already have an idea of when a device is
> connected, so the kernel should be able to "do the right thing".
>
> Having options over what "the right thing" is is probably a good idea
> whilst the kinks are worked out from the default behaviour, but this is
> not something that should be advertised to users.

I wasn't really thinking of buttons for BT coex, but instead just
information exposed out and making it available. Reason for this is
users tend to be blind about btcoex stuff and it would be nice if we
had a way to inform the user of the btcoex mechanisms that actually
are being used. Does that change your answer?

Luis

2010-03-10 20:52:30

by Pavel Machek

[permalink] [raw]
Subject: Re: Linux Bluetooth Coexistence documentation in general and for ath9k

Hi!

> > The question of Bluetooth coexistence pops up here, on IRC and on bug
> > reports quite too often so I've stuffed what I could onto a page with
> > a few references / code and about ath9k's schemes for BT coexistence,
> > feel free to extend or correct:
> >
> > http://wireless.kernel.org/en/users/Documentation/Bluetooth-coexistence
> > http://wireless.kernel.org/en/users/Drivers/ath9k/btcoex
> >
> > I'm still not sure if "2-wire" and "3-wire" are generic terms and if
> > someone owns a trademark on them or what, but looking down the road I
> > think it would be nice to export this information through nl80211, if
> > a device supports any of these BT-coex schemes and if so, perhaps
> > display the current signal status of:
> >
> > * WLAN_ACTIVE
> > * BT_PRIORITY
> > * BT_STATE
...
> the only thing the host has control over is AFH channel map, and even
> modifying that is not really needed. The Bluetooth controller will do
> AFH automatically and it is on by default. We never switch that off
> actually.
>
> Normally the co-ex stuff is hard-wired between the Bluetooth and WiFi
> and thus out of control to the host OS.

I believe that 'internal wifi, usb bluetooth' is still quite common
setup...
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2010-03-04 15:10:58

by Marcel Holtmann

[permalink] [raw]
Subject: Re: Linux Bluetooth Coexistence documentation in general and for ath9k

Hi Luis,

> The question of Bluetooth coexistence pops up here, on IRC and on bug
> reports quite too often so I've stuffed what I could onto a page with
> a few references / code and about ath9k's schemes for BT coexistence,
> feel free to extend or correct:
>
> http://wireless.kernel.org/en/users/Documentation/Bluetooth-coexistence
> http://wireless.kernel.org/en/users/Drivers/ath9k/btcoex
>
> I'm still not sure if "2-wire" and "3-wire" are generic terms and if
> someone owns a trademark on them or what, but looking down the road I
> think it would be nice to export this information through nl80211, if
> a device supports any of these BT-coex schemes and if so, perhaps
> display the current signal status of:
>
> * WLAN_ACTIVE
> * BT_PRIORITY
> * BT_STATE
>
> I do wonder if this could be useful to network applets like network
> manager/connman. The other BT coex schemes are BT specific it seems
> and not sure if those devices can expose that information out and
> inform userspace of certain events.
>
> Marcel, does the BlueZ support exporting if certain bt-coex schemes
> are supported like AFH, channel skipping, TDM, and also if they are
> being used and details of that?

the only thing the host has control over is AFH channel map, and even
modifying that is not really needed. The Bluetooth controller will do
AFH automatically and it is on by default. We never switch that off
actually.

Normally the co-ex stuff is hard-wired between the Bluetooth and WiFi
and thus out of control to the host OS.

Regards

Marcel



2010-03-10 22:12:14

by Mike Tsai

[permalink] [raw]
Subject: RE: Linux Bluetooth Coexistence documentation in general and for ath9k

Hi,

I think host shall provide channel map to controller because it is considered to be much more accurate than the channel map generated by controller based on the RSSI reading.

Mike

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Pavel Machek
Sent: Wednesday, March 10, 2010 12:48 PM
To: Marcel Holtmann
Cc: Luis R. Rodriguez; linux-wireless; linux-bluetooth; [email protected]; Dan Tian
Subject: Re: Linux Bluetooth Coexistence documentation in general and for ath9k

Hi!

> > The question of Bluetooth coexistence pops up here, on IRC and on bug
> > reports quite too often so I've stuffed what I could onto a page with
> > a few references / code and about ath9k's schemes for BT coexistence,
> > feel free to extend or correct:
> >
> > http://wireless.kernel.org/en/users/Documentation/Bluetooth-coexistence
> > http://wireless.kernel.org/en/users/Drivers/ath9k/btcoex
> >
> > I'm still not sure if "2-wire" and "3-wire" are generic terms and if
> > someone owns a trademark on them or what, but looking down the road I
> > think it would be nice to export this information through nl80211, if
> > a device supports any of these BT-coex schemes and if so, perhaps
> > display the current signal status of:
> >
> > * WLAN_ACTIVE
> > * BT_PRIORITY
> > * BT_STATE
...
> the only thing the host has control over is AFH channel map, and even
> modifying that is not really needed. The Bluetooth controller will do
> AFH automatically and it is on by default. We never switch that off
> actually.
>
> Normally the co-ex stuff is hard-wired between the Bluetooth and WiFi
> and thus out of control to the host OS.

I believe that 'internal wifi, usb bluetooth' is still quite common
setup...
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2010-03-04 10:18:15

by Bastien Nocera

[permalink] [raw]
Subject: Re: Linux Bluetooth Coexistence documentation in general and for ath9k

On Wed, 2010-03-03 at 21:09 -0800, Luis R. Rodriguez wrote:
> On Wed, Mar 3, 2010 at 4:59 PM, Bastien Nocera <[email protected]> wrote:
> > On Wed, 2010-03-03 at 16:43 -0800, Luis R. Rodriguez wrote:
> >> Marcel, a question for you below.
> >>
> >> The question of Bluetooth coexistence pops up here, on IRC and on bug
> >> reports quite too often so I've stuffed what I could onto a page with
> >> a few references / code and about ath9k's schemes for BT coexistence,
> >> feel free to extend or correct:
> > <snip>
> >> I do wonder if this could be useful to network applets like network
> >> manager/connman.
> >
> > Not really. To me, it sounds like a "make it work" button. The kernel
> > bits of Bluetooth should already have an idea of when a device is
> > connected, so the kernel should be able to "do the right thing".
> >
> > Having options over what "the right thing" is is probably a good idea
> > whilst the kinks are worked out from the default behaviour, but this is
> > not something that should be advertised to users.
>
> I wasn't really thinking of buttons for BT coex, but instead just
> information exposed out and making it available. Reason for this is
> users tend to be blind about btcoex stuff and it would be nice if we
> had a way to inform the user of the btcoex mechanisms that actually
> are being used. Does that change your answer?

No, not really. It could be useful as a debugging statement in the
kernel, or in bluetoothd might be helpful, but I'm not sure why users
would need to be told about the BT coex support, or what type is being
used.

It's probably too much information for the users. Though if it's
available in the kernel, one could get it fairly easily if enquiring.

Cheers


2010-03-04 01:15:36

by Bastien Nocera

[permalink] [raw]
Subject: Re: Linux Bluetooth Coexistence documentation in general and for ath9k

On Wed, 2010-03-03 at 16:43 -0800, Luis R. Rodriguez wrote:
> Marcel, a question for you below.
>
> The question of Bluetooth coexistence pops up here, on IRC and on bug
> reports quite too often so I've stuffed what I could onto a page with
> a few references / code and about ath9k's schemes for BT coexistence,
> feel free to extend or correct:
<snip>
> I do wonder if this could be useful to network applets like network
> manager/connman.

Not really. To me, it sounds like a "make it work" button. The kernel
bits of Bluetooth should already have an idea of when a device is
connected, so the kernel should be able to "do the right thing".

Having options over what "the right thing" is is probably a good idea
whilst the kinks are worked out from the default behaviour, but this is
not something that should be advertised to users.

> The other BT coex schemes are BT specific it seems
> and not sure if those devices can expose that information out and
> inform userspace of certain events.

Cheers