← Back to team overview

kernel-packages team mailing list archive

[Bug 1221995] Re: 0a12:0001 Bluetooth Dongle (Cambridge Silicon Radio, Ltd) doesn't work with 3.11 or 3.13 kernels


Both commits:

f9f462faa02777f497eb25255683a94e0c054de6 - Bluetooth: Add quirk for disabling Delete Stored Link Key command
81cac64ba258ae823f52cfaec0cad26ecb31adc3 - Bluetooth: Deal with USB devices that are faking CSR vendor

together seem to address this issue...

First time they appeared was: v3.14-rc1. The second one's description

There exists a set of Bluetooth USB devices that show up on the USB
bus as 0a12:0001 and identify themselves as devices from CSR. However
they are not. When sending Read Local Version command they now have
a split personality and say they are from Broadcom.

  < 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: 2.0 (0x3) HCI Revision: 0x3000
      LMP Version: 2.0 (0x3) LMP Subversion: 0x420b
      Manufacturer: Broadcom Corporation (15)

The assumption is that they are neither CSR nor Broadcom based devices
and that they are designed and manufactured by someone else.

For the most parts they follow the Bluetooth HCI specification and
can be used as standard Bluetooth devices. However they have the
minor problem that the Delete Stored Link Key command is not working
as it should.

During the Bluetooth controller setup, this command is needed if
stored link keys are supported. For these devices it has to be
assumed that this is broken and so just set a quirk to clearly
indicate the behavior. After that the setup can just proceed.

Now the trick part is to detect these faulty devices since we do
not want to punish all CSR and all Broadcom devices. The original
devices do actually work according to the specification.

What is known so far is that these broken devices set the USB bcdDevice
revision information to 1.0 or less.

T:  Bus=02 Lev=01 Prnt=01 Port=08 Cnt=03 Dev#=  9 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev= 1.00
S:  Manufacturer=Bluetooth v2.0
S:  Product=Bluetooth V2.0 Dongle

T:  Bus=05 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev= 0.07

In case of CSR devices, the bcdDevice revision contains the firmware
build ID and that is normally a higher value. If the bcdDevice revision
is 1.0 or less, then an extra setup stage is checking if Read Local
Version returns CSR manufacturer information. If not then it will be
assumed that this is a broken device and the Delete Stored Link Key
command will be marked as broken.

Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>

Building a kernel from ubuntu-trusty tree with both patches for testing. 
Will provide public PPA soon.

* Will rely on community tests to suggest fix to stable-kernel team *

You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.

  0a12:0001 Bluetooth Dongle (Cambridge Silicon Radio, Ltd) doesn't work
  with 3.11 or 3.13 kernels

Status in “linux” package in Ubuntu:

Bug description:
  SRU Justification:

  Impact: Bluetooth device stopped working. Device support regression.
  Fix: Upstream, f9f462faa02777f497eb25255683a94e0c054de6
  Testcase: Comment #10

  Original Description:

  Bluetooth device stopped working after upgrading ubuntu to 13.10.

  ~$ lsusb:
   Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

  ~$ hciconfig
  hci0:	Type: BR/EDR  Bus: USB
   BD Address: 00:1B:10:00:0F:46  ACL MTU: 1017:8  SCO MTU: 64:0
   RX bytes:457 acl:0 sco:0 events:16 errors:0
   TX bytes:68 acl:0 sco:0 commands:16 errors:0
  ~$ hcitool dev

  device simply doesnt appear on bluetooth manager. blueman UI is

  ProblemType: Bug
  DistroRelease: Ubuntu 13.10
  Package: linux-image-3.11.0-4-generic 3.11.0-4.9
  ProcVersionSignature: Ubuntu 3.11.0-4.9-generic 3.11.0-rc7
  Uname: Linux 3.11.0-4-generic x86_64
  NonfreeKernelModules: nvidia
  ApportVersion: 2.12.1-0ubuntu3
  Architecture: amd64
   /dev/snd/controlC1:  jorge      1954 F.... pulseaudio
   /dev/snd/controlC0:  jorge      1954 F.... pulseaudio
  Date: Fri Sep  6 22:32:45 2013
  HibernationDevice: RESUME=UUID=707ce71f-40a6-4fc3-b0a1-d24329b1c781
   eth0      no wireless extensions.

   lo        no wireless extensions.
  MachineType: MEGAWARE MW-H61M-2H
  MarkForUpload: True

  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.11.0-4-generic root=UUID=3480d68a-ee68-452e-b349-a2398ce3da52 ro quiet splash
   linux-restricted-modules-3.11.0-4-generic N/A
   linux-backports-modules-3.11.0-4-generic  N/A
   linux-firmware                            1.113
   0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
  SourcePackage: linux
  UpgradeStatus: Upgraded to saucy on 2013-08-23 (15 days ago)
  dmi.bios.date: 08/28/2012
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: F5 MW
  dmi.board.asset.tag: To be filled by O.E.M.
  dmi.board.name: MW-H61M-2H
  dmi.board.vendor: MEGAWARE
  dmi.board.version: v1.3 - 17/07/2012 - MWX
  dmi.chassis.asset.tag: To Be Filled By O.E.M.
  dmi.chassis.type: 3
  dmi.chassis.vendor: MEGAWARE
  dmi.chassis.version: To Be Filled By O.E.M.
  dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrF5MW:bd08/28/2012:svnMEGAWARE:pnMW-H61M-2H:pvrv1.3-17/07/2012-MWX:rvnMEGAWARE:rnMW-H61M-2H:rvrv1.3-17/07/2012-MWX:cvnMEGAWARE:ct3:cvrToBeFilledByO.E.M.:
  dmi.product.name: MW-H61M-2H
  dmi.product.version: v1.3 - 17/07/2012 - MWX
  dmi.sys.vendor: MEGAWARE

To manage notifications about this bug go to: