<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/bluetooth/btusb.c, branch v4.4.8</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.4.8</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.4.8'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-04-12T16:08:54+00:00</updated>
<entry>
<title>Bluetooth: Add new AR3012 ID 0489:e095</title>
<updated>2016-04-12T16:08:54+00:00</updated>
<author>
<name>Dmitry Tunin</name>
<email>hanipouspilot@gmail.com</email>
</author>
<published>2016-02-09T21:49:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7435429a8a7f3a83f760a1f72958ee53db408e27'/>
<id>urn:sha1:7435429a8a7f3a83f760a1f72958ee53db408e27</id>
<content type='text'>
commit 28c971d82fb58ef7cba22e5308be6d2d2590473d upstream.

T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=02 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0489 ProdID=e095 Rev=00.01
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

This device requires ar3k/AthrBT_0x31010100.dfu and
ar3k/ramps_0x31010100_40.dfu firmware files that are not in
linux-firmware yet.

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

Signed-off-by: Dmitry Tunin &lt;hanipouspilot@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Bluetooth: btusb: Add a new AR3012 ID 13d3:3472</title>
<updated>2016-04-12T16:08:44+00:00</updated>
<author>
<name>Dmitry Tunin</name>
<email>hanipouspilot@gmail.com</email>
</author>
<published>2016-03-03T22:32:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=28dee875257cf0985de5ddea4053d968fe365b44'/>
<id>urn:sha1:28dee875257cf0985de5ddea4053d968fe365b44</id>
<content type='text'>
commit 75c6aca4765dbe3d0c1507ab5052f2e373dc2331 upstream.

T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=13d3 ProdID=3472 Rev=00.01
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

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

Signed-off-by: Dmitry Tunin &lt;hanipouspilot@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Bluetooth: btusb: Add a new AR3012 ID 04ca:3014</title>
<updated>2016-04-12T16:08:44+00:00</updated>
<author>
<name>Dmitry Tunin</name>
<email>hanipouspilot@gmail.com</email>
</author>
<published>2016-02-28T08:04:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=36a7f23fc74cf3f3947ea837310b1140e9592f6d'/>
<id>urn:sha1:36a7f23fc74cf3f3947ea837310b1140e9592f6d</id>
<content type='text'>
commit 81d90442eac779938217c3444b240aa51fd3db47 upstream.

T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=03 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=04ca ProdID=3014 Rev=00.02
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

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

Signed-off-by: Dmitry Tunin &lt;hanipouspilot@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Bluetooth: btusb: Add new AR3012 ID 13d3:3395</title>
<updated>2016-04-12T16:08:44+00:00</updated>
<author>
<name>Dmitry Tunin</name>
<email>hanipouspilot@gmail.com</email>
</author>
<published>2016-02-10T12:33:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fb243c3d81a5d8b5a275c4e118bea481df5d0510'/>
<id>urn:sha1:fb243c3d81a5d8b5a275c4e118bea481df5d0510</id>
<content type='text'>
commit 609574eb46335cfac1421a07c0505627cbbab1f0 upstream.

T: Bus=03 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=13d3 ProdID=3395 Rev=00.01
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

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

Reported-and-tested-by: Christopher Simerly &lt;kilikopela29@gmail.com&gt;
Signed-off-by: Dmitry Tunin &lt;hanipouspilot@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Add support of Toshiba Broadcom based devices</title>
<updated>2016-03-03T23:07:16+00:00</updated>
<author>
<name>Dmitry Tunin</name>
<email>hanipouspilot@gmail.com</email>
</author>
<published>2015-12-05T11:09:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2b2b55a0d88ef81f33ea77f79cbdeee25b2ed891'/>
<id>urn:sha1:2b2b55a0d88ef81f33ea77f79cbdeee25b2ed891</id>
<content type='text'>
commit 1623d0bf847d3b38d8cf24367b3689ba0e3fe2aa upstream.

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

    T: Bus=03 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
    D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=0930 ProdID=0225 Rev=01.12
    S: Manufacturer=Broadcom Corp
    S: Product=BCM43142A0
    S: SerialNumber=4CBB58034671
    C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
    I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

Signed-off-by: Dmitry Tunin &lt;hanipouspilot@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Fix possible deadlock in btusb</title>
<updated>2015-11-05T03:03:11+00:00</updated>
<author>
<name>Kuba Pawlak</name>
<email>kubax.t.pawlak@intel.com</email>
</author>
<published>2015-10-28T14:18:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f6fc86f2c572ff1d192e8b5d5bf339ba06ebe3e4'/>
<id>urn:sha1:f6fc86f2c572ff1d192e8b5d5bf339ba06ebe3e4</id>
<content type='text'>
commit 8f9d02f470f48416444ac3a1eacecdd0f743f1a7 introduced spinlocks
in btusb_work. This is run in a context of a worqueue and can be interrupted
by hardware irq. If it happens while spinlock is held, we have a deadlock.
Solution is to use _irqsave/_resore version of locking

[  466.460560] =================================
[  466.460565] [ INFO: inconsistent lock state ]
[  466.460572] 4.3.0-rc6+ #1 Tainted: G        W
[  466.460576] ---------------------------------
[  466.460582] inconsistent {IN-HARDIRQ-W} -&gt; {HARDIRQ-ON-W} usage.
[  466.460589] kworker/0:2/94 [HC0[0]:SC0[0]:HE1:SE1] takes:
[  466.460595]  (&amp;(&amp;data-&gt;rxlock)-&gt;rlock){?.-...}, at: [&lt;ffffffffa0526923&gt;] btusb_work+0xa3/0x3fd [btusb]
[  466.460621] {IN-HARDIRQ-W} state was registered at:
[  466.460625]   [&lt;ffffffff811021b5&gt;] __lock_acquire+0xc45/0x1e80
[  466.460638]   [&lt;ffffffff811040d5&gt;] lock_acquire+0xe5/0x1f0
[  466.460646]   [&lt;ffffffff8182f108&gt;] _raw_spin_lock+0x38/0x50
[  466.460657]   [&lt;ffffffffa0525448&gt;] btusb_recv_intr+0x38/0x170 [btusb]
[  466.460668]   [&lt;ffffffffa0525626&gt;] btusb_intr_complete+0xa6/0x130 [btusb]
[  466.460679]   [&lt;ffffffff815d8f1e&gt;] __usb_hcd_giveback_urb+0x8e/0x160
[  466.460690]   [&lt;ffffffff815d911f&gt;] usb_hcd_giveback_urb+0x3f/0x120
[  466.460698]   [&lt;ffffffff81606e4d&gt;] uhci_giveback_urb+0xad/0x280
[  466.460706]   [&lt;ffffffff81608f64&gt;] uhci_scan_schedule.part.33+0x6b4/0xbe0
[  466.460714]   [&lt;ffffffff81609b50&gt;] uhci_irq+0xd0/0x180
[  466.460722]   [&lt;ffffffff815d8296&gt;] usb_hcd_irq+0x26/0x40
[  466.460729]   [&lt;ffffffff81117d40&gt;] handle_irq_event_percpu+0x40/0x300
[  466.460739]   [&lt;ffffffff81118040&gt;] handle_irq_event+0x40/0x60
[  466.460746]   [&lt;ffffffff8111af39&gt;] handle_fasteoi_irq+0x89/0x150
[  466.460754]   [&lt;ffffffff8101e0f3&gt;] handle_irq+0x73/0x120
[  466.460763]   [&lt;ffffffff81832f11&gt;] do_IRQ+0x61/0x120
[  466.460772]   [&lt;ffffffff8183084c&gt;] ret_from_intr+0x0/0x31
[  466.460780]   [&lt;ffffffff81697a77&gt;] cpuidle_enter+0x17/0x20
[  466.460790]   [&lt;ffffffff810f62c2&gt;] call_cpuidle+0x32/0x60
[  466.460800]   [&lt;ffffffff810f65a8&gt;] cpu_startup_entry+0x2b8/0x3f0
[  466.460807]   [&lt;ffffffff818214ca&gt;] rest_init+0x13a/0x140
[  466.460817]   [&lt;ffffffff81f76029&gt;] start_kernel+0x4a3/0x4c4
[  466.460827]   [&lt;ffffffff81f75339&gt;] x86_64_start_reservations+0x2a/0x2c
[  466.460837]   [&lt;ffffffff81f75485&gt;] x86_64_start_kernel+0x14a/0x16d
[  466.460846] irq event stamp: 754913
[  466.460851] hardirqs last  enabled at (754913): [&lt;ffffffff8182f4cc&gt;] _raw_spin_unlock_irq+0x2c/0x40
[  466.460861] hardirqs last disabled at (754912): [&lt;ffffffff8182f28d&gt;] _raw_spin_lock_irq+0x1d/0x60
[  466.460869] softirqs last  enabled at (753024): [&lt;ffffffff810aeaa0&gt;] __do_softirq+0x380/0x490
[  466.460880] softirqs last disabled at (753009): [&lt;ffffffff810aedef&gt;] irq_exit+0x10f/0x120
[  466.460888]
               other info that might help us debug this:
[  466.460894]  Possible unsafe locking scenario:

[  466.460899]        CPU0
[  466.460903]        ----
[  466.460907]   lock(&amp;(&amp;data-&gt;rxlock)-&gt;rlock);
[  466.460915]   &lt;Interrupt&gt;
[  466.460918]     lock(&amp;(&amp;data-&gt;rxlock)-&gt;rlock);
[  466.460926]
                *** DEADLOCK ***

[  466.460935] 2 locks held by kworker/0:2/94:
[  466.460939]  #0:  ("events"){.+.+.+}, at: [&lt;ffffffff810c69bb&gt;] process_one_work+0x16b/0x660
[  466.460958]  #1:  ((&amp;data-&gt;work)){+.+...}, at: [&lt;ffffffff810c69bb&gt;] process_one_work+0x16b/0x660
[  466.460974]

Signed-off-by: Kuba Pawlak &lt;kubax.t.pawlak@intel.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: btintel: Enable extra Intel vendor events</title>
<updated>2015-10-21T04:34:11+00:00</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2015-10-21T00:45:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=213445b2b40e87e819c7d949ae7d97c30dcd0853'/>
<id>urn:sha1:213445b2b40e87e819c7d949ae7d97c30dcd0853</id>
<content type='text'>
The Intel Bluetooth controllers can emit extra vendor specific events in
error conditions or for debugging purposes. To make the life easier for
engineers, enable them by default. When the vendor_diag options has been
enabled, then additional debug events are also enabled.

Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Johan Hedberg &lt;johan.hedberg@intel.com&gt;
</content>
</entry>
<entry>
<title>Bluetooth: btusb: Set manufacturer for Intel bootloader devices</title>
<updated>2015-10-21T04:32:12+00:00</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2015-10-20T23:31:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e4c534bbacab81fc67c81ae8af263a70f35ffec9'/>
<id>urn:sha1:e4c534bbacab81fc67c81ae8af263a70f35ffec9</id>
<content type='text'>
For Intel bootloader devices, set the manufacturer information so that
it becomes possible to decode the boot process.

Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Johan Hedberg &lt;johan.hedberg@intel.com&gt;
</content>
</entry>
<entry>
<title>Bluetooth: btusb: Add support for latest Apple controllers</title>
<updated>2015-10-20T22:49:24+00:00</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2015-10-19T22:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=22f8e9dbf671a2f36d90d3d8723a2a0c5227fa4b'/>
<id>urn:sha1:22f8e9dbf671a2f36d90d3d8723a2a0c5227fa4b</id>
<content type='text'>
The latest Apple Bluetooth controllers with Broadcom chip in it have
a small design change. Instead of including a USB hub with mouse and
keyboard devices, they are now HID interfaces on the same device.

T:  Bus=04 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 39 Spd=12   MxCh= 0
D:  Ver= 2.01 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05ac ProdID=8290 Rev= 0.79
S:  Manufacturer=Broadcom Corp.
S:  Product=Bluetooth USB Host Controller
C:* #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=  0mA
A:  FirstIf#= 2 IfCount= 4 Cls=ff(vend.) Sub=01 Prot=01
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=85(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
E:  Ad=86(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 3 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 3 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 3 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 3 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 3 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=btusb
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

The general layout of Bluetooth devices is that interface 0 is the main
interface and interface 1 is for audio data. This design obviously moves
it to main interface 2 and audio data on interface 3.

Starting with the MacBookPro12,1 (early 2015 models) the new Broadcom
BCM943602CS cards are used which show this interface layout.

usb 4-1.5: New USB device found, idVendor=05ac, idProduct=8290
usb 4-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-1.5: Product: Bluetooth USB Host Controller
usb 4-1.5: Manufacturer: Broadcom Corp.
Bluetooth: hci0: BCM: chip id 102 build 0243
Bluetooth: hci0: BCM: product 05ac:8290
Bluetooth: hci0: BCM20703A1 Generic USB UHE Apple 20Mhz fcbga_X87

Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Johan Hedberg &lt;johan.hedberg@intel.com&gt;
</content>
</entry>
<entry>
<title>Bluetooth: btusb: Set early vendor info for Intel and Broadcom</title>
<updated>2015-10-20T22:49:23+00:00</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2015-10-20T00:30:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=49a5f782d03888e8b55ed799e57a592b76ce32f6'/>
<id>urn:sha1:49a5f782d03888e8b55ed799e57a592b76ce32f6</id>
<content type='text'>
For the controllers from Intel and Broadcom (including Apple), it is
helpful to have the information about the manufacturer send out early.

This patch sets the hdev-&gt;manufacturer information which will be send
out before actually calling the vendor specific hdev-&gt;setup driver
callback.

Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Johan Hedberg &lt;johan.hedberg@intel.com&gt;
</content>
</entry>
</feed>
