<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/bluetooth, branch v4.8</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.8</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.8'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-07-18T08:13:02Z</updated>
<entry>
<title>Bluetooth: btmrvl: reset is_suspending flag in failure path</title>
<updated>2016-07-18T08:13:02Z</updated>
<author>
<name>Amitkumar Karwar</name>
<email>akarwar@marvell.com</email>
</author>
<published>2016-07-15T10:50:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e7acf43024e95faa7460e77fe7e0fec2a3de582a'/>
<id>urn:sha1:e7acf43024e95faa7460e77fe7e0fec2a3de582a</id>
<content type='text'>
is_suspending flag remains on when host sleep fails to enable. Data
path is unnecessarily blocked after this. This patch ensures to
reset the flag in failure path.

Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: bpa10x: Add support for hci_set_fw_info</title>
<updated>2016-07-18T06:33:56Z</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2016-07-17T17:55:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b2999c195bb5cec1a1c713f17c7f382bbcdb8b39'/>
<id>urn:sha1:b2999c195bb5cec1a1c713f17c7f382bbcdb8b39</id>
<content type='text'>
The Digianswer sniffer devices allow for reading a firmware specific
information string. If it is available, then inform the Bluetooth core
about it via hci_set_fw_info. That exposes it via debugfs like this:

  # cat /sys/kernel/debug/bluetooth/hci0/firmware_info
  SNIF_102,BB930,02/01/18,10:37:56

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>drivers: misc: ti-st: Use int instead of fuzzy char for callback status</title>
<updated>2016-07-17T17:59:26Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2016-06-06T09:02:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4360fa22ad5b48a1d1e10e31ffb383ed8c977435'/>
<id>urn:sha1:4360fa22ad5b48a1d1e10e31ffb383ed8c977435</id>
<content type='text'>
On mips and parisc:

    drivers/bluetooth/btwilink.c: In function 'ti_st_open':
    drivers/bluetooth/btwilink.c:174:21: warning: overflow in implicit constant conversion [-Woverflow]
       hst-&gt;reg_status = -EINPROGRESS;

    drivers/nfc/nfcwilink.c: In function 'nfcwilink_open':
    drivers/nfc/nfcwilink.c:396:31: warning: overflow in implicit constant conversion [-Woverflow]
      drv-&gt;st_register_cb_status = -EINPROGRESS;

There are actually two issues:
  1. Whether "char" is signed or unsigned depends on the architecture.
     As the completion callback data is used to pass a (negative) error
     code, it should always be signed.
  2. EINPROGRESS is 150 on mips, 245 on parisc.
     Hence -EINPROGRESS doesn't fit in a signed 8-bit number.

Change the callback status from "char" to "int" to fix these.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Acked-by: Mauro Carvalho Chehab &lt;mchehab@s-opensource.com&gt;
Acked-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support of 13d3:3490 AR3012 device</title>
<updated>2016-07-11T22:36:39Z</updated>
<author>
<name>Dmitry Tunin</name>
<email>hanipouspilot@gmail.com</email>
</author>
<published>2016-07-11T22:35:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=12d868964f7352e8b18e755488f7265a93431de1'/>
<id>urn:sha1:12d868964f7352e8b18e755488f7265a93431de1</id>
<content type='text'>
T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=05 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=13d3 ProdID=3490 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/1600623

Signed-off-by: Dmitry Tunin &lt;hanipouspilot@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>Bluetooth: hci_intel: Remove LPM enabling from setup procedure</title>
<updated>2016-07-11T19:57:50Z</updated>
<author>
<name>Loic Poulain</name>
<email>loic.poulain@gmail.com</email>
</author>
<published>2016-07-11T19:55:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=31eff2670301d0367ce06645e41c3b57db4e9e78'/>
<id>urn:sha1:31eff2670301d0367ce06645e41c3b57db4e9e78</id>
<content type='text'>
LPM can be enabled via a DDC write command at specific DDC ID.
As any other DDC value, this is up to the DDC config file to
include (or not) the low power mode configuration.

Signed-off-by: Loic Poulain &lt;loic.poulain@gmail.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Rename HCI_BREDR into HCI_PRIMARY</title>
<updated>2016-07-09T18:37:13Z</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2016-07-05T12:30:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ca8bee5dde1f02c2dbe8c8453dce27f2dfafb21c'/>
<id>urn:sha1:ca8bee5dde1f02c2dbe8c8453dce27f2dfafb21c</id>
<content type='text'>
The HCI_BREDR naming is confusing since it actually stands for Primary
Bluetooth Controller. Which is a term that has been used in the latest
standard. However from a legacy point of view there only really have
been Basic Rate (BR) and Enhanced Data Rate (EDR). Recent versions of
Bluetooth introduced Low Energy (LE) and made this terminology a little
bit confused since Dual Mode Controllers include BR/EDR and LE. To
simplify this the name HCI_PRIMARY stands for the Primary Controller
which can be a single mode or dual mode controller.

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 device 0489:e092</title>
<updated>2016-07-08T10:20:57Z</updated>
<author>
<name>Yvain THONNART</name>
<email>yvain.thonnart@m4x.org</email>
</author>
<published>2016-06-11T13:43:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=47ca5898eb09bc49666958f2ea7e0ea5b4add0f5'/>
<id>urn:sha1:47ca5898eb09bc49666958f2ea7e0ea5b4add0f5</id>
<content type='text'>
With current btusb.ko kernel module, Bluetooth pretends to be active
but there is no real activity.

I'm using an Acer Aspire VN7-791.

Output of lsusb:
Bus 003 Device 007: ID 0489:e092 Foxconn / Hon Hai

On my laptop, this device is actually used as a combo with wifi chipset
Atheros Qualcomm Killer N1525 Wireless-AC [168c:003e],

* Fix by adding a declaration in kernel sources drivers/bluetooth/btusb.c

        { USB_DEVICE(0x0489, 0xe092), .driver_info = BTUSB_QCA_ROME },

* Compiled extra module /lib/modules/4.4.0-22-generic/extra/btusb.ko

* Successfully tested against my phone (obex file transfer)

Signed-off-by: Yvain THONNART &lt;yvain.thonnart@m4x.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: btmrvl: fix slab-out-of-bounds access in btmrvl_sdio</title>
<updated>2016-07-08T10:20:57Z</updated>
<author>
<name>Ricky Liang</name>
<email>jcliang@chromium.org</email>
</author>
<published>2016-06-28T07:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d2f302409e022506640363277ea8f8034c558c6c'/>
<id>urn:sha1:d2f302409e022506640363277ea8f8034c558c6c</id>
<content type='text'>
Kasan reported slab-out-of-bounds access in btmrvl_sdio:

[   33.055400] ==================================================================
[   33.062585] BUG: KASAN: slab-out-of-bounds in memcpy+0x24/0x50 at addr ffffffc0d89b4a00
[   33.070529] Read of size 256 by task btmrvl_main_ser/3576
[   33.075885] =============================================================================
[   33.084002] BUG kmalloc-256 (Tainted: G    B         ): kasan: bad access detected
[   33.091511] -----------------------------------------------------------------------------
&lt;snip...&gt;
[   33.413498] Call trace:
[   33.415928] [&lt;ffffffc00020a440&gt;] dump_backtrace+0x0/0x190
[   33.421288] [&lt;ffffffc00020a5ec&gt;] show_stack+0x1c/0x28
[   33.426305] [&lt;ffffffc000b3288c&gt;] dump_stack+0xa0/0xf8
[   33.431320] [&lt;ffffffc000396130&gt;] print_trailer+0x158/0x16c
[   33.436765] [&lt;ffffffc0003962cc&gt;] object_err+0x48/0x5c
[   33.441780] [&lt;ffffffc00039be24&gt;] kasan_report+0x344/0x510
[   33.447141] [&lt;ffffffc00039afd8&gt;] __asan_loadN+0x20/0x150
[   33.452413] [&lt;ffffffc00039b60c&gt;] memcpy+0x20/0x50
[   33.457084] [&lt;ffffffc000595fcc&gt;] swiotlb_tbl_map_single+0x2ec/0x310
[   33.463305] [&lt;ffffffc000596b54&gt;] map_single+0x24/0x30
[   33.468320] [&lt;ffffffc0005970c8&gt;] swiotlb_map_sg_attrs+0xec/0x21c
[   33.474286] [&lt;ffffffc000219d4c&gt;] __swiotlb_map_sg_attrs+0x48/0xec
[   33.480339] [&lt;ffffffc0008ea610&gt;] msdc_prepare_data.isra.11+0xf0/0x11c
[   33.486733] [&lt;ffffffc0008ecbd0&gt;] msdc_ops_request+0x74/0xf0
[   33.492266] [&lt;ffffffc0008c6b38&gt;] __mmc_start_request+0x78/0x8c
[   33.498057] [&lt;ffffffc0008c6d6c&gt;] mmc_start_request+0x220/0x240
[   33.503848] [&lt;ffffffc0008c6e04&gt;] mmc_wait_for_req+0x78/0x250
[   33.509468] [&lt;ffffffc0008d70fc&gt;] mmc_io_rw_extended+0x2ec/0x388
[   33.515347] [&lt;ffffffc0008d8fc0&gt;] sdio_io_rw_ext_helper+0x160/0x268
[   33.521483] [&lt;ffffffc0008d93fc&gt;] sdio_writesb+0x40/0x50
[   33.526677] [&lt;ffffffbffc338b38&gt;] btmrvl_sdio_host_to_card+0x124/0x1bc [btmrvl_sdio]
[   33.534283] [&lt;ffffffbffc3290a0&gt;] btmrvl_service_main_thread+0x384/0x428 [btmrvl]
[   33.541626] [&lt;ffffffc0002518e8&gt;] kthread+0x140/0x158
[   33.546550] Memory state around the buggy address:
[   33.551305]  ffffffc0d89b4980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   33.558474]  ffffffc0d89b4a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   33.565643] &gt;ffffffc0d89b4a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fc
[   33.572809]                                                                 ^
[   33.579889]  ffffffc0d89b4b00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   33.587055]  ffffffc0d89b4b80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[   33.594221] ==================================================================

The cause of this is that btmrvl_sdio_host_to_card can access memory region
out of its allocated space due to:

  1. the requested block size is smaller than SDIO_BLOCK_SIZE, and/or
  2. the allocated memory is not BTSDIO_DMA_ALIGN-aligned.

This patch fixes the issue by allocating a buffer which is big enough for
SDIO_BLOCK_SIZE transfer and/or BTSDIO_DMA_ALIGN address relocation.

Signed-off-by: Ricky Liang &lt;jcliang@chromium.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Replace constant hw_variant from Intel Bluetooth firmware filename</title>
<updated>2016-07-08T10:20:57Z</updated>
<author>
<name>Tedd Ho-Jeong An</name>
<email>tedd.an@intel.com</email>
</author>
<published>2016-06-28T15:56:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=230b04ac8f439d0797ab85fb356f069f0472306f'/>
<id>urn:sha1:230b04ac8f439d0797ab85fb356f069f0472306f</id>
<content type='text'>
The format of Intel Bluetooth firmware filename for bootloader product
is ibt-&lt;hw_variant&gt;-&lt;device_revision_id&gt;.sfi

Currently the driver uses a constant value 11 (0x0b) for hw_variant
to support LnP/SfP product. But new product like WsP product has
a different value such as 12 (0x0c).

To support the multiple products, this patch replaces the constant
value of hw_variant to the actual hw_variant value read from
the device.

Signed-off-by: Tedd Ho-Jeong An &lt;tedd.an@intel.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support for Intel Bluetooth device 3168 [8087:0aa7]</title>
<updated>2016-07-08T10:20:57Z</updated>
<author>
<name>Tedd Ho-Jeong An</name>
<email>tedd.an@intel.com</email>
</author>
<published>2016-06-20T20:43:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=439e65d3998c0b9501638cc0c2190e936c0caaf2'/>
<id>urn:sha1:439e65d3998c0b9501638cc0c2190e936c0caaf2</id>
<content type='text'>
This patch adds support for Intel Bluetooth device 3168 also known
as Sandy Peak (SdP).

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  4 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=8087 ProdID=0aa7 Rev= 0.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
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms

Signed-off-by: Tedd Ho-Jeong An &lt;tedd.an@intel.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
</feed>
