Re: Linux 2.6.39

From: Corey Boyle
Date: Wed May 25 2011 - 07:53:10 EST


On Wed, May 25, 2011 at 7:36 AM, Ville Tervo <ville.tervo@xxxxxxxxx> wrote:
> On Wed, May 25, 2011 at 07:11:17AM -0400, ext Ed Tomlinson wrote:
>> On Wednesday 25 May 2011 06:54:54 Corey Boyle wrote:
>> > > On Mon, May 23, 2011 at 06:08:36PM -0400, ext Ed Tomlinson wrote:
>> > > > On Saturday 21 May 2011 16:31:00 Ed Tomlinson wrote:
>> > > > > On Saturday 21 May 2011 13:56:20 Milan Oravec wrote:
>> > > > > > Hi Linus, I'm sorry bothering you, but my usb-bluetooth dongle stop working in
>> > > > > > 2.6.39 kernel series.
>> > > > > > I know it is nothing ground breaking but it is bug.
>> > > > > > I'm using this hardware from 2.6.11 kernel series.
>> > > > > > Details are included in this thread:
>> > > > > >
>> > > > > > https://lkml.org/lkml/2011/4/18/481
>> > > > > >
>> > > > > > I hope I'm doing nothing false writing this email.
>> > > > >
>> > > > > Same device, same problem here.
>> > > > >
>> > > > > You are not alone
>> > > >
>> > > > I had some time this afternood so I tried bisecting without much luck.  I ended up \
>> > > > somewhere rc1 ish with a system that would paniced during boot.  Here is the bisect \
>> > > > log incase it helps:
>> > > > # bad: [61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf] Linux 2.6.39
>> > > > # good: [521cb40b0c44418a4fd36dc633f575813d59a43d] Linux 2.6.38
>> > > > git bisect start 'v2.6.39' 'v2.6.38' '--' 'drivers/bluetooth'
>> > > > # bad: [7a6362800cb7d1d618a697a650c7aaed3eb39320] Merge \
>> > > > git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 git bisect bad \
>> > > > 7a6362800cb7d1d618a697a650c7aaed3eb39320 # bad: \
>> > > > [0a0e9ae1bd788bc19adc4d4ae08c98b233697402] Merge branch 'master' of \
>> > > > master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 git bisect bad \
>> > > > 0a0e9ae1bd788bc19adc4d4ae08c98b233697402 # skip: \
>> > > > [03c2d0e89409b59c1ec9d9511533cedc0b7aaa69] Bluetooth: Use usb_fill_int_urb() git \
>> > > > bisect skip 03c2d0e89409b59c1ec9d9511533cedc0b7aaa69 # skip: \
>> > > > [7f4b2b04c88377af30c022f36c060190182850fb] Bluetooth: Make hci a child of the \
>> > > > corresponding tty device. git bisect skip 7f4b2b04c88377af30c022f36c060190182850fb
>> > > > # skip: [84f0e17f78471857104a20dfc57711409f68d7bf] Bluetooth: ath3k: Avoid \
>> > > > duplication of code git bisect skip 84f0e17f78471857104a20dfc57711409f68d7bf
>> > > >
>> > > > Ring any bells for anyone?
>> > > >
>> > > > Probably should open a regression bug for this too....
>> > >
>> > > I think this is regression with d5859e22cd40b73164b3e5d8d5d796f96edcc6af
>> > > commit. Probably the code tries to enable something that is not supported.
>> > >
>> > > Could you pastebin hcidump while doing hciconfig hci0 up?
>
> Some cutting done
>
>>
>> hcidump
>> HCI sniffer - Bluetooth packet analyzer ver 2.0
>> < HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
>> > HCI Event: Command Complete (0x0e) plen 12
>>     Read Local Supported Features (0x04|0x0003) ncmd 1
>>     status 0x00
>>     Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
>> < HCI Command: Read Local Version Information (0x04|0x0001) plen 0
>> > HCI Event: Command Complete (0x0e) plen 12
>>     Read Local Version Information (0x04|0x0001) ncmd 1
>>     status 0x00
>>     HCI Version: 1.1 (0x1) HCI Revision: 0x20d
>>     LMP Version: 1.1 (0x1) LMP Subversion: 0x20d
>>     Manufacturer: Cambridge Silicon Radio (10)
>> < HCI Command: Set Event Mask (0x03|0x0001) plen 8
>>     Mask: 0xfffffbff00000000
>> > HCI Event: Command Complete (0x0e) plen 4
>>     Set Event Mask (0x03|0x0001) ncmd 1
>>     status 0x12
>>     Error: Invalid HCI Command Parameters
>>
>
> Yes the HCI_OP_SET_EVENT_MASK cmd seems to be the source of problems.
>
> Maybe is rejects it because two reserved bits are being enabled. Could you try
> this patch?
>
> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
> index 19cd4af..e483e30 100644
> --- a/net/bluetooth/hci_event.c
> +++ b/net/bluetooth/hci_event.c
> @@ -475,7 +475,7 @@ static void hci_setup_event_mask(struct hci_dev *hdev)
>        /* The second byte is 0xff instead of 0x9f (two reserved bits
>         * disabled) since a Broadcom 1.2 dongle doesn't respond to the
>         * command otherwise */
> -       u8 events[8] = { 0xff, 0xff, 0xfb, 0xff, 0x00, 0x00, 0x00, 0x00 };
> +       u8 events[8] = { 0xff, 0x9f, 0xfb, 0xff, 0x00, 0x00, 0x00, 0x00 };
>
>        /* Events for 1.2 and newer controllers */
>        if (hdev->lmp_ver > 1) {
>
>
> --
> Ville
>

No luck for me with a Microsoft Wireless Transceiver for Bluetooth.
Not sending the HCI_OP_SET_EVENT_MASK command at all seems to fix it,
but it seems to have negative effects on my devices battery life when
doing so.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/