FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 10-11-2012, 10:52 AM
Jesse Sung
 
Default UBUNTU: SAUCE: Bluetooth: Support for loading Broadcom bluetooth firmware

From: Wen-chien Jesse Sung <jesse.sung@canonical.com>

BugLink: https://launchpad.net/bugs/1065400

Broadcom bluetooth chips require a tool called patchram uploader [1]
to load firmware. This applies to at least BCM20702 and BCM43142.
Although some of the devices have an OTPROM that contains required
firmware, but it is found that these devices would not have HFP/HSP
support unless a upgraded firmware is loaded via patchram uploader.

This tool requires hci device to do the firmware loading, but
this may cause some race condition between patchram tool and
bluetoothd or something that also works on hci interface.

Also it needs some hooks to make firmware loads after bootup,
s3, s4, rfkill, and device hotplug events. Implement this loader
in kernel module would make things more easier.

This patchset implements the patchram loader in btusb. It uploads
patchram firmware at the first hci open. Although this patchset
is rejected by upstream [2][3][4], it still could be a temporary
workaround before a final solution is landed in upstream.

Since this patchset only affects people who have these modules,
and fails to do request_firmware() does not trigger an error,
this workaround should be safe for current users.

[1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2
[2] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
[3] http://marc.info/?t=134933604300005&r=1&w=2
[4] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2

Wen-chien Jesse Sung (2):
Add a load_firmware callback to struct hci_dev
Implement broadcom patchram firmware loader

drivers/bluetooth/btusb.c | 77 ++++++++++++++++++++++++++++++++++++--
include/net/bluetooth/hci_core.h | 1 +
net/bluetooth/hci_core.c | 2 +
3 files changed, 77 insertions(+), 3 deletions(-)

--
1.7.9.5


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 10-11-2012, 11:42 AM
Andy Whitcroft
 
Default UBUNTU: SAUCE: Bluetooth: Support for loading Broadcom bluetooth firmware

On Thu, Oct 11, 2012 at 06:52:58PM +0800, Jesse Sung wrote:
> From: Wen-chien Jesse Sung <jesse.sung@canonical.com>
>
> BugLink: https://launchpad.net/bugs/1065400
>
> Broadcom bluetooth chips require a tool called patchram uploader [1]
> to load firmware. This applies to at least BCM20702 and BCM43142.
> Although some of the devices have an OTPROM that contains required
> firmware, but it is found that these devices would not have HFP/HSP
> support unless a upgraded firmware is loaded via patchram uploader.
>
> This tool requires hci device to do the firmware loading, but
> this may cause some race condition between patchram tool and
> bluetoothd or something that also works on hci interface.
>
> Also it needs some hooks to make firmware loads after bootup,
> s3, s4, rfkill, and device hotplug events. Implement this loader
> in kernel module would make things more easier.
>
> This patchset implements the patchram loader in btusb. It uploads
> patchram firmware at the first hci open. Although this patchset
> is rejected by upstream [2][3][4], it still could be a temporary
> workaround before a final solution is landed in upstream.
>
> Since this patchset only affects people who have these modules,
> and fails to do request_firmware() does not trigger an error,
> this workaround should be safe for current users.
>
> [1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2
> [2] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
> [3] http://marc.info/?t=134933604300005&r=1&w=2
> [4] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
>
> Wen-chien Jesse Sung (2):
> Add a load_firmware callback to struct hci_dev
> Implement broadcom patchram firmware loader

Upstream seemed pretty against the way this works, and how often we load
the firmware. How far away are we from getting a working solution that
might be acceptable. I note he pointed us to the work intel is doing on
a similar device? Is that done yet?

-apw

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 10-11-2012, 01:20 PM
Jesse Sung
 
Default UBUNTU: SAUCE: Bluetooth: Support for loading Broadcom bluetooth firmware

2012/10/11 Andy Whitcroft <apw@canonical.com>:
> On Thu, Oct 11, 2012 at 06:52:58PM +0800, Jesse Sung wrote:
>> From: Wen-chien Jesse Sung <jesse.sung@canonical.com>
>>
>> BugLink: https://launchpad.net/bugs/1065400
>>
>> Broadcom bluetooth chips require a tool called patchram uploader [1]
>> to load firmware. This applies to at least BCM20702 and BCM43142.
>> Although some of the devices have an OTPROM that contains required
>> firmware, but it is found that these devices would not have HFP/HSP
>> support unless a upgraded firmware is loaded via patchram uploader.
>>
>> This tool requires hci device to do the firmware loading, but
>> this may cause some race condition between patchram tool and
>> bluetoothd or something that also works on hci interface.
>>
>> Also it needs some hooks to make firmware loads after bootup,
>> s3, s4, rfkill, and device hotplug events. Implement this loader
>> in kernel module would make things more easier.
>>
>> This patchset implements the patchram loader in btusb. It uploads
>> patchram firmware at the first hci open. Although this patchset
>> is rejected by upstream [2][3][4], it still could be a temporary
>> workaround before a final solution is landed in upstream.
>>
>> Since this patchset only affects people who have these modules,
>> and fails to do request_firmware() does not trigger an error,
>> this workaround should be safe for current users.
>>
>> [1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2
>> [2] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
>> [3] http://marc.info/?t=134933604300005&r=1&w=2
>> [4] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
>>
>> Wen-chien Jesse Sung (2):
>> Add a load_firmware callback to struct hci_dev
>> Implement broadcom patchram firmware loader
>
> Upstream seemed pretty against the way this works, and how often we load
> the firmware. How far away are we from getting a working solution that
> might be acceptable. I note he pointed us to the work intel is doing on
> a similar device? Is that done yet?
>
> -apw

I think he is talking about this:
http://article.gmane.org/gmane.linux.bluez.kernel/29643

It seems that some intel devices need specific initialization before they can
be used, just like broadcom devices need patchram. Upstream would like to
see a more general solution that can be used by intel, broadcom, and maybe
upcoming atheros devices.

Dunno how long will it take to get an solution, but there are already a lot
of these devices in users machines.

Thanks,
Jesse

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 10-11-2012, 05:20 PM
Tim Gardner
 
Default UBUNTU: SAUCE: Bluetooth: Support for loading Broadcom bluetooth firmware

On 10/11/2012 05:42 AM, Andy Whitcroft wrote:
> On Thu, Oct 11, 2012 at 06:52:58PM +0800, Jesse Sung wrote:
>> From: Wen-chien Jesse Sung <jesse.sung@canonical.com>
>>
>> BugLink: https://launchpad.net/bugs/1065400
>>
>> Broadcom bluetooth chips require a tool called patchram uploader [1]
>> to load firmware. This applies to at least BCM20702 and BCM43142.
>> Although some of the devices have an OTPROM that contains required
>> firmware, but it is found that these devices would not have HFP/HSP
>> support unless a upgraded firmware is loaded via patchram uploader.
>>
>> This tool requires hci device to do the firmware loading, but
>> this may cause some race condition between patchram tool and
>> bluetoothd or something that also works on hci interface.
>>
>> Also it needs some hooks to make firmware loads after bootup,
>> s3, s4, rfkill, and device hotplug events. Implement this loader
>> in kernel module would make things more easier.
>>
>> This patchset implements the patchram loader in btusb. It uploads
>> patchram firmware at the first hci open. Although this patchset
>> is rejected by upstream [2][3][4], it still could be a temporary
>> workaround before a final solution is landed in upstream.
>>
>> Since this patchset only affects people who have these modules,
>> and fails to do request_firmware() does not trigger an error,
>> this workaround should be safe for current users.
>>
>> [1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2
>> [2] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
>> [3] http://marc.info/?t=134933604300005&r=1&w=2
>> [4] http://marc.info/?l=linux-bluetooth&m=134933588701899&w=2
>>
>> Wen-chien Jesse Sung (2):
>> Add a load_firmware callback to struct hci_dev
>> Implement broadcom patchram firmware loader
>
> Upstream seemed pretty against the way this works, and how often we load
> the firmware. How far away are we from getting a working solution that
> might be acceptable. I note he pointed us to the work intel is doing on
> a similar device? Is that done yet?
>
> -apw
>

I don't think this looks _too_ bad, and we're unlikely to get an
upstream solution in a timely manner. Plus, it only affects BT devices
that are specifically marked BTUSB_BCM_PATCHRAM (which I assume Jesse
has tested).

rtg
--
Tim Gardner tim.gardner@canonical.com

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 03:59 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org