Re: [Bluez-users] hciconfig hci0 reset bug

Dave Young
2008-03-22T00:29:43Z

On Fri, Mar 21, 2008 at 1:19 AM, Odysseus Flappington
<deriziotis@gmail.com> wrote:
> Hi Marcel, Dave,
>
> I've been looking around to see if I could figure out the build id where the
> dongles started shipping with the correct HCI_Reset. I think I may have
> found something.

Thanks a lot.

Marcel, I think it's what you want. I would like to file a patch.

>
> http://www.csr.com/ contains the docs regarding the release of the CSR
> firmware and the specs that each adhere's to. Looking at the following HCI
> overall Implementation doc, I think we can find the relevant build id:
>
> https://www.csrsupport.com/document.php?did=141
>
> Firstly, i found confirmation that the problem has been solved in
> HCIStack1.1v12.x:
>
> "In builds before HCIStack1.1v12.x, the HCI Reset command rebooted the
> BlueCore device. This implied the host
> transport was reset. This was a consequence of the way the firmware team
> understood an early version of the
> Bluetooth specification (probably 0.7).
>
> Rebooting the BlueCore device is incorrect behaviour. Version 1.1 [BT] now
> makes it clear that the Reset
> command must reinitialise radio, LC, LM and HCI state, but leave the host
> transport in place. Builds since
> HCIStack1.1v12.x obey [BT]."
>
> So this should be fixed in HCIStack1.1v12.x, the doc outlines the build ids
> for each version of of the stack, here is the build id for HCIStack1.1v12.1:
>
> BuildID (hex) BuildID (decimal) Build Name
> 0x0077 119 HCIStack1.1v12.1
>
> So, if I'm reading this correctly, you should issue the reset for all
> CSR-based dongles with build id > 118.
>
> Am I on the right track here? Does this information look accurate to you
> guys?
>
> If there's anything else I can to do re this issue, please let feel free to
> ask me.
>
> Many thanks,
> Alex (Jackflap)
>
>
>
>
>
> On 18/03/2008, Dave Young <hidave.darkstar@gmail.com> wrote:
> > On Mon, Mar 17, 2008 at 8:28 PM, Odysseus Flappington
> >
> > <deriziotis@gmail.com> wrote:
> > > Hi Dave,
> > >
> >
> > > So I got around to recompiling my kernel this weekend, and ran off a
> test on
> > > the patch attached and it worked like a charm.
> > >
> > > I have to wonder though why the line was commented out in the first
> place.
> > > Could it be because internal adapters don't need the line?
> > >
> > > Anyway, I'd love to see this fixed in future kernels. If there's
> anything
> > > else I can do to help test, let me know. Now that I've got my head
> around
> > > recompiling kernels again, I can probably turn around tests a lot
> faster.
> >
> >
> > Hi thanks
> >
> > About the reset issue, I get some response from marcel about reset csr
> dongles
> > -------- Marcel said :
> > this is a clear NAK since you gonna break all old CSR based dongles.
> > Within the Bluetooth 1.0b and 1.1 specification there was an issues
> > with if HCI_Reset should only reset the Bluetooth internals or also
> > the transport. So issuing HCI_Reset on an old dongle will cause an USB
> > reset.
> >
> > The solution is to find the build id when CSR produced correct
> > firmware and set the HCI_RESET quirk based on that. I meant to do this
> > for a long time, but so far never got around to inquiry the correct
> > build id where this got fixed.
> > --------
> >
> > But I think it's hard to find that build id, so ...
> >
> > Regards
> >
> > dave
> >
> >
> > >
> > > Many thanks,
> > >
> > >
> > > Alex
> > >
> > > On 03/03/2008, Odysseus Flappington <deriziotis@gmail.com> wrote:
> > > > Ok,
> > > >
> > > > I passed reset=1 to hci_usb by adding the following line to
> > > > /etc/modprobe.d/options:
> > > >
> > > > options hci_usb reset=1
> > > >
> > > > and that's fixed the problem!
> > > >
> > > > Wasn't sure about my lsusb output, didn't seem to show very much, so
> > > > here's my lsusb -v output for my bluetooth device:
> > > >
> > > > Bus 001 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd
> > > > Bluetooth Dongle (HCI mode)
> > > > Device Descriptor:
> > > > bLength 18
> > > > bDescriptorType 1
> > > > bcdUSB 2.00
> > > > bDeviceClass 224 Wireless
> > > > bDeviceSubClass 1 Radio Frequency
> > > > bDeviceProtocol 1 Bluetooth
> > > > bMaxPacketSize0 64
> > > > idVendor 0x0a12 Cambridge Silicon Radio, Ltd
> > > > idProduct 0x0001 Bluetooth Dongle (HCI mode)
> > > > bcdDevice 31.64
> > > > iManufacturer 0
> > > > iProduct 0
> > > > iSerial 0
> > > > bNumConfigurations 1
> > > > Configuration Descriptor:
> > > > bLength 9
> > > > bDescriptorType 2
> > > > wTotalLength 177
> > > > bNumInterfaces 2
> > > > bConfigurationValue 1
> > > > iConfiguration 0
> > > > bmAttributes 0xc0
> > > > Self Powered
> > > > MaxPower 0mA
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 0
> > > > bAlternateSetting 0
> > > > bNumEndpoints 3
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x81 EP 1 IN
> > > > bmAttributes 3
> > > > Transfer Type Interrupt
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0010 1x 16 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x02 EP 2 OUT
> > > > bmAttributes 2
> > > > Transfer Type Bulk
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0040 1x 64 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x82 EP 2 IN
> > > > bmAttributes 2
> > > > Transfer Type Bulk
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0040 1x 64 bytes
> > > > bInterval 1
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 1
> > > > bAlternateSetting 0
> > > > bNumEndpoints 2
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x03 EP 3 OUT
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0000 1x 0 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x83 EP 3 IN
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0000 1x 0 bytes
> > > > bInterval 1
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 1
> > > > bAlternateSetting 1
> > > > bNumEndpoints 2
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x03 EP 3 OUT
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0009 1x 9 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x83 EP 3 IN
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0009 1x 9 bytes
> > > > bInterval 1
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 1
> > > > bAlternateSetting 2
> > > > bNumEndpoints 2
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x03 EP 3 OUT
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0011 1x 17 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x83 EP 3 IN
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0011 1x 17 bytes
> > > > bInterval 1
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 1
> > > > bAlternateSetting 3
> > > > bNumEndpoints 2
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x03 EP 3 OUT
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0019 1x 25 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x83 EP 3 IN
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0019 1x 25 bytes
> > > > bInterval 1
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 1
> > > > bAlternateSetting 4
> > > > bNumEndpoints 2
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x03 EP 3 OUT
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0021 1x 33 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x83 EP 3 IN
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0021 1x 33 bytes
> > > > bInterval 1
> > > > Interface Descriptor:
> > > > bLength 9
> > > > bDescriptorType 4
> > > > bInterfaceNumber 1
> > > > bAlternateSetting 5
> > > > bNumEndpoints 2
> > > > bInterfaceClass 224 Wireless
> > > > bInterfaceSubClass 1 Radio Frequency
> > > > bInterfaceProtocol 1 Bluetooth
> > > > iInterface 0
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x03 EP 3 OUT
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0031 1x 49 bytes
> > > > bInterval 1
> > > > Endpoint Descriptor:
> > > > bLength 7
> > > > bDescriptorType 5
> > > > bEndpointAddress 0x83 EP 3 IN
> > > > bmAttributes 1
> > > > Transfer Type Isochronous
> > > > Synch Type None
> > > > Usage Type Data
> > > > wMaxPacketSize 0x0031 1x 49 bytes
> > > > bInterval 1
> > > > Device Status: 0x0001
> > > > Self Powered
> > > >
> > > > Thanks,
> > > > Alex
> > > >
> > > >
> > > >
> > > >
> > > > On 03/03/2008, Odysseus Flappington <deriziotis@gmail.com> wrote:
> > > > > Hi Dave,
> > > > >
> > > > > Thanks for the help. I can probably get a recompile of my kernel
> done
> > > > > by the end of the weekend, maybe end of week, if it'll help.
> > > > >
> > > > > In the meantime, I'll try loading the bluetooth module with reset=1
> > > > > and get the lsusb output to you tonight when I get home from work.
> > > > >
> > > > > Thanks,
> > > > > Alex (Jackflap)
> > > > >
> > > > >
> > > > > On 03/03/2008, Dave Young <hidave.darkstar@gmail.com> wrote:
> > > > > > On Mon, Mar 3, 2008 at 9:21 AM, Dave Young
> > > <hidave.darkstar@gmail.com> wrote:
> > > > > > > On Fri, Feb 29, 2008 at 6:51 AM, Odysseus Flappington
> > > > > > > <deriziotis@gmail.com> wrote:
> > > > > > >
> > > > > > >
> > > > > > > > So, it turns out that in order for any external usb
> bluetooth
> > > adapters
> > > > > > > > to re-connect to paired input devices on reboot, you need
> to
> > > issue an
> > > > > > > > 'hciconfig hci0 reset' command after rebooting in order to
> > > reconnect.
> > > > > > > >
> > > > > > > > More info can be found in bug #133690 on Launchpad
> > > > > > > >
> > > (https://bugs.launchpad.net/ubuntu/+source/bluez-utils/+bug/133690).
> > > > > > > >
> > > > > > > > This bug isn't Ubuntu-specific since I have reproduced in
> > > Fedora 8, so
> > > > > > > > I'm posting here.
> > > > > > > >
> > > > > > > > Simply adding 'hciconfig hci0 reset' in
> /etc/default/bluetooth
> > > in
> > > > > > > > source would solve this bug. Is this a reasonable
> solution?
> > > > > > > >
> > > > > > > > What is required in order to get a fix implemented?
> > > > > >
> > > > > >
> > > > > > Sorry for previous blank reply.
> > > > > >
> > > > > > For your problem, if you don't want to patch kernel you can also
> try
> > > > > > load the bluetooth module with parameter "reset=1"
> > > > > >
> > > > > > Could you send the lsusb output?
> > > > > >
> > > > > > Regards
> > > > > >
> > > > > > dave
> > > > > >
> > > > > >
> > > > > >
> > >
> -------------------------------------------------------------------------
> > > > > > This SF.net email is sponsored by: Microsoft
> > > > > > Defy all challenges. Microsoft(R) Visual Studio 2008.
> > > > > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> > > > > > _______________________________________________
> > > > > > Bluez-users mailing list
> > > > > > Bluez-users@lists.sourceforge.net
> > > > > > https://lists.sourceforge.net/lists/listinfo/bluez-users
> > > > > >
> > > > >
> > > >
> > >
> > >
> >
>
>