1. 25 Jan, 2020 1 commit
  2. 24 Jan, 2020 1 commit
    • Maxim Mikityanskiy's avatar
      Bluetooth: btrtl: Use kvmalloc for FW allocations · 268d3636
      Maxim Mikityanskiy authored
      Currently, kmemdup is applied to the firmware data, and it invokes
      kmalloc under the hood. The firmware size and patch_length are big (more
      than PAGE_SIZE), and on some low-end systems (like ASUS E202SA) kmalloc
      may fail to allocate a contiguous chunk under high memory usage and
      fragmentation:
      
      Bluetooth: hci0: RTL: examining hci_ver=06 hci_rev=000a lmp_ver=06 lmp_subver=8821
      Bluetooth: hci0: RTL: rom_version status=0 version=1
      Bluetooth: hci0: RTL: loading rtl_bt/rtl8821a_fw.bin
      kworker/u9:2: page allocation failure: order:4, mode:0x40cc0(GFP_KERNEL|__GFP_COMP), nodemask=(null),cpuset=/,mems_allowed=0
      <stack trace follows>
      
      As firmware load happens on each resume, Bluetooth will stop working
      after several iterations, when the kernel fails to allocate an order-4
      page.
      
      This patch replaces kmemdup with kvmalloc+memcpy. It's not required to
      have a contiguous chunk here, because it's not mapped to the device
      directly.
      Signed-off-by: default avatarMaxim Mikityanskiy <maxtram95@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      268d3636
  3. 22 Jan, 2020 2 commits
  4. 16 Jan, 2020 2 commits
  5. 15 Jan, 2020 12 commits
  6. 14 Jan, 2020 1 commit
  7. 09 Jan, 2020 1 commit
  8. 08 Jan, 2020 3 commits
  9. 06 Jan, 2020 1 commit
    • Rocky Liao's avatar
      Bluetooth: btusb: Add support for 04ca:3021 QCA_ROME device · 19220f35
      Rocky Liao authored
      USB "VendorID:04ca ProductID:3021" is a new QCA ROME USB
      Bluetooth device, this patch will support firmware downloading for it.
      
      T:  Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  3 Spd=12   MxCh= 0
      D:  Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=04ca ProdID=3021 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=  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#= 1 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#= 1 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#= 1 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#= 1 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#= 1 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#= 1 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
      Signed-off-by: default avatarRocky Liao <rjliao@codeaurora.org>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      19220f35
  10. 04 Jan, 2020 10 commits
  11. 03 Jan, 2020 6 commits