20 Oct, 2016

1 commit

  • Probe functions should return 0 on success. This driver's probe
    returns the value returned by hci_register_dev(), which is the hci
    index. This works for systems with only one hci device (id = 0) but
    for systems where the btwilink device ends up with an id larger than
    0, things will start to fall apart.

    Make the probe function return 0 on success.

    Signed-off-by: Jacob Siverskog
    Signed-off-by: Marcel Holtmann

    Jacob Siverskog
     

13 Oct, 2016

1 commit


07 Oct, 2016

1 commit

  • Move usb_autopm_get_interface() ahead of setup_on_usb() to prevent
    device from sending usb control message in usb suspend mode.

    The error message is as below:

    [ 83.944103] btusb 1-2:1.1: usb_suspend_interface: status 0
    [ 83.944107] btusb 1-2:1.0: usb_suspend_interface: status 0
    [ 83.960132] usb 1-2: usb auto-suspend, wakeup 0
    [ 83.976156] usb 1-2: usb_suspend_device: status 0
    [ 83.976162] usb 1-2: usb_suspend_both: status 0
    [ 298.689106] Bluetooth: hci0
    [ 298.689399] Bluetooth: hci0: Failed to access otp area (-113)

    Signed-off-by: Ethan Hsieh
    Signed-off-by: Marcel Holtmann

    Ethan Hsieh
     

06 Oct, 2016

2 commits

  • btusb_set_bdaddr_marvell() configures BD address for Marvell chipsets.
    This patch adds new chipset 8997 in the list so that BD address feature
    would be available for it.

    Signed-off-by: Amitkumar Karwar
    Signed-off-by: Marcel Holtmann

    Amitkumar Karwar
     
  • Pull networking updates from David Miller:

    1) BBR TCP congestion control, from Neal Cardwell, Yuchung Cheng and
    co. at Google. https://lwn.net/Articles/701165/

    2) Do TCP Small Queues for retransmits, from Eric Dumazet.

    3) Support collect_md mode for all IPV4 and IPV6 tunnels, from Alexei
    Starovoitov.

    4) Allow cls_flower to classify packets in ip tunnels, from Amir Vadai.

    5) Support DSA tagging in older mv88e6xxx switches, from Andrew Lunn.

    6) Support GMAC protocol in iwlwifi mwm, from Ayala Beker.

    7) Support ndo_poll_controller in mlx5, from Calvin Owens.

    8) Move VRF processing to an output hook and allow l3mdev to be
    loopback, from David Ahern.

    9) Support SOCK_DESTROY for UDP sockets. Also from David Ahern.

    10) Congestion control in RXRPC, from David Howells.

    11) Support geneve RX offload in ixgbe, from Emil Tantilov.

    12) When hitting pressure for new incoming TCP data SKBs, perform a
    partial rathern than a full purge of the OFO queue (which could be
    huge). From Eric Dumazet.

    13) Convert XFRM state and policy lookups to RCU, from Florian Westphal.

    14) Support RX network flow classification to igb, from Gangfeng Huang.

    15) Hardware offloading of eBPF in nfp driver, from Jakub Kicinski.

    16) New skbmod packet action, from Jamal Hadi Salim.

    17) Remove some inefficiencies in snmp proc output, from Jia He.

    18) Add FIB notifications to properly propagate route changes to
    hardware which is doing forwarding offloading. From Jiri Pirko.

    19) New dsa driver for qca8xxx chips, from John Crispin.

    20) Implement RFC7559 ipv6 router solicitation backoff, from Maciej
    Żenczykowski.

    21) Add L3 mode to ipvlan, from Mahesh Bandewar.

    22) Support 802.1ad in mlx4, from Moshe Shemesh.

    23) Support hardware LRO in mediatek driver, from Nelson Chang.

    24) Add TC offloading to mlx5, from Or Gerlitz.

    25) Convert various drivers to ethtool ksettings interfaces, from
    Philippe Reynes.

    26) TX max rate limiting for cxgb4, from Rahul Lakkireddy.

    27) NAPI support for ath10k, from Rajkumar Manoharan.

    28) Support XDP in mlx5, from Rana Shahout and Saeed Mahameed.

    29) UDP replicast support in TIPC, from Richard Alpe.

    30) Per-queue statistics for qed driver, from Sudarsana Reddy Kalluru.

    31) Support BQL in thunderx driver, from Sunil Goutham.

    32) TSO support in alx driver, from Tobias Regnery.

    33) Add stream parser engine and use it in kcm.

    34) Support async DHCP replies in ipconfig module, from Uwe
    Kleine-König.

    35) DSA port fast aging for mv88e6xxx driver, from Vivien Didelot.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1715 commits)
    mlxsw: switchx2: Fix misuse of hard_header_len
    mlxsw: spectrum: Fix misuse of hard_header_len
    net/faraday: Stop NCSI device on shutdown
    net/ncsi: Introduce ncsi_stop_dev()
    net/ncsi: Rework the channel monitoring
    net/ncsi: Allow to extend NCSI request properties
    net/ncsi: Rework request index allocation
    net/ncsi: Don't probe on the reserved channel ID (0x1f)
    net/ncsi: Introduce NCSI_RESERVED_CHANNEL
    net/ncsi: Avoid unused-value build warning from ia64-linux-gcc
    net: Add netdev all_adj_list refcnt propagation to fix panic
    net: phy: Add Edge-rate driver for Microsemi PHYs.
    vmxnet3: Wake queue from reset work
    i40e: avoid NULL pointer dereference and recursive errors on early PCI error
    qed: Add RoCE ll2 & GSI support
    qed: Add support for memory registeration verbs
    qed: Add support for QP verbs
    qed: PD,PKEY and CQ verb support
    qed: Add support for RoCE hw init
    qede: Add qedr framework
    ...

    Linus Torvalds
     

04 Oct, 2016

1 commit

  • Pull usb/phy/extcon updates from Greg KH:
    "Here is the big USB, and PHY, and extcon, patchsets for 4.9-rc1.

    Full details are in the shortlog, but generally a lot of new hardware
    support, usb gadget updates, and Wolfram's great cleanup of USB error
    message handling, making the kernel image a tad bit smaller.

    All of this has been in linux-next with no reported issues"

    * tag 'usb-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (343 commits)
    Revert "usbtmc: convert to devm_kzalloc"
    USB: serial: cp210x: Add ID for a Juniper console
    usb: Kconfig: using select for USB_COMMON dependency
    bluetooth: bcm203x: don't print error when allocating urb fails
    mmc: host: vub300: don't print error when allocating urb fails
    usb: hub: change CLEAR_FEATURE to SET_FEATURE
    usb: core: Introduce a USB port LED trigger
    USB: bcma: drop Northstar PHY 2.0 initialization code
    usb: core: hcd: add missing header dependencies
    usb: musb: da8xx: fix error handling message in probe
    usb: musb: Fix session based PM for first invalid VBUS
    usb: musb: Fix PM runtime for disconnect after unconfigure
    musb: Export musb_root_disconnect for use in modules
    usb: misc: legousbtower: Fix NULL pointer deference
    cdc-acm: hardening against malicious devices
    Revert "usb: gadget: NCM: Protect dev->port_usb using dev->lock"
    include: extcon: Fix compilation error caused because of incomplete merge
    MAINTAINERS: add tree entry for USB Serial
    phy-twl4030-usb: initialize charging-related stuff via pm_runtime
    phy-twl4030-usb: better handle musb_mailbox() failure
    ...

    Linus Torvalds
     

27 Sep, 2016

1 commit


24 Sep, 2016

3 commits

  • Remove multiple return statements in hci_uart_tty_ioctl() call and
    added a single return statement.

    This code re-organisation allows subsequent locking to be easily
    added.

    Signed-off-by: Vignesh Raman
    Signed-off-by: Dean Jenkins
    Signed-off-by: Rajeev Kumar
    Signed-off-by: Marcel Holtmann

    Vignesh Raman
     
  • Send an ACK frame with the current txack value in response to
    every received reliable frame unless a TX reliable frame is being
    sent. This modification allows re-transmitted frames from the remote
    peer to be acknowledged rather than ignored. It means that the remote
    peer knows which frame number to start re-transmitting from.

    Without this modification, the recovery time to a missing frame
    from the remote peer was unnecessarily being extended because the
    headers of the out of order reliable frames were being discarded rather
    than being processed. The frame headers of received frames will
    indicate whether the local peer's transmissions have been
    acknowledged by the remote peer. Therefore, the local peer may
    unnecessarily re-transmit despite the remote peer already indicating
    that the frame had been acknowledged in out of order reliable frame.

    Signed-off-by: Dean Jenkins
    Signed-off-by: Jiada Wang
    Signed-off-by: Rajeev Kumar
    Signed-off-by: Marcel Holtmann

    Dean Jenkins
     
  • drivers/bluetooth/hci_bcsp.c contains some style issues as
    highlighted by

    ./scripts/checkpatch.pl --strict -f drivers/bluetooth/hci_bcsp.c

    a) comments - maintainer prefers network style comments
    b) positioning of lines in multi-line statements
    c) spaces after casts
    d) missing blank lines after declarations

    Therefore, tidy-up the above to make it easier to apply
    future code changes that have conforming style.

    Signed-off-by: Dean Jenkins
    Signed-off-by: Marcel Holtmann

    Dean Jenkins
     

23 Sep, 2016

1 commit

  • Running with KASAN produces some messages:

    BUG: KASAN: use-after-free in ti_st_send_frame+0x9c/0x16c at addr
    ffffffc064868fe8
    Read of size 1 by task kworker/u17:1/1266

    Hardware name: HiKey Development Board (DT)
    Workqueue: hci0 hci_cmd_work
    Call trace:
    [] dump_backtrace+0x0/0x178
    [] show_stack+0x20/0x28
    [] dump_stack+0xa8/0xe0
    [] print_trailer+0x110/0x174
    [] object_err+0x4c/0x5c
    [] kasan_report_error+0x254/0x54c
    [] kasan_report+0x64/0x70
    [] __asan_load1+0x4c/0x54
    [] ti_st_send_frame+0x9c/0x16c
    [] hci_send_frame+0xb4/0x118
    [] hci_cmd_work+0xcc/0x154
    [] process_one_work+0x26c/0x7a4
    [] worker_thread+0x9c/0x73c
    [] kthread+0x138/0x154
    [] ret_from_fork+0x10/0x40

    The packet is being accessed for statistics after it has been freed.
    Save the packet type before sending for statistics afterwards.

    Signed-off-by: Laura Abbott
    Signed-off-by: Marcel Holtmann

    Laura Abbott
     

22 Sep, 2016

1 commit

  • BugLink: https://bugs.launchpad.net/bugs/1535802

    T: Bus=01 Lev=02 Prnt=02 Port=04 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=04ca ProdID=3011 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

    Signed-off-by: Dmitry Tunin
    Signed-off-by: Marcel Holtmann
    Cc: stable@vger.kernel.org

    Dmitry Tunin
     

20 Sep, 2016

12 commits

  • This patch introduces support for Marvell Bluetooth controller over
    UART (8897 for now). In order to send the final firmware at full speed,
    a helper firmware is firstly sent. Firmware download is driven by the
    controller which sends request firmware packets (including expected
    size).

    This driver is a global rework of the one proposed by
    Amitkumar Karwar .

    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • Will be used by hci_nokia extra protocol.

    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • Use full name instead of abbreviation.

    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • The RTL8822BE is a new Realtek wifi and BT device. Support for the BT
    part is hereby added.

    As this device is similar to most of the other Realtek BT devices, the
    changes are minimal. The main difference is that the 8822BE needs a
    configuration file for enabling and disabling features. Thus code is
    added to select and load this configuration file. Although not needed
    at the moment, hooks are added for the other devices that might need
    such configuration files.

    One additional change is to the routine that tests that the project
    ID contained in the firmware matches the hardware. As the project IDs
    are not sequential, continuing to use the position in the array as the
    expected value of the ID would require adding extra unused entries in
    the table, and any subsequant rearrangment of the array would break the
    code. To fix these problems, the array elements now contain both the
    hardware ID and the expected value for the project ID.

    Signed-off-by: 陆朱伟
    Signed-off-by: Larry Finger
    Signed-off-by: Marcel Holtmann

    Larry Finger
     
  • edl->data is an array of __u8 so the null check is unneccessary,
    so remove it.

    Signed-off-by: Colin Ian King
    Signed-off-by: Marcel Holtmann

    Colin Ian King
     
  • Conwise CW6622 seems to have a problem with the stored link key
    commands so just mark it as broken.

    < HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
    > HCI Event: Command Complete (0x0e) plen 12
    Read Local Supported Features (0x04|0x0003) ncmd 1
    status 0x00
    Features: 0xff 0x3e 0x85 0x38 0x18 0x18 0x00 0x00
    < 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: 0x1f4
    LMP Version: 2.0 (0x3) LMP Subversion: 0x1f4
    Manufacturer: CONWISE Technology Corporation Ltd (66)
    ...
    < HCI Command: Read Local Supported Commands (0x04|0x0002) plen 0
    > HCI Event: Command Complete (0x0e) plen 68
    Read Local Supported Commands (0x04|0x0002) ncmd 1
    status 0x00
    Commands: 7fffef03cedfffffffffff1ff20ff8ff3f
    ...
    < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7
    bdaddr 00:00:00:00:00:00 all 1
    > HCI Event: Command Complete (0x0e) plen 8
    Read Stored Link Key (0x03|0x000d) ncmd 1
    status 0x11 max 0 num 0
    Error: Unsupported Feature or Parameter Value

    Signed-off-by: Szymon Janc
    Signed-off-by: Marcel Holtmann

    Szymon Janc
     
  • The workqueue "workqueue" queues multiple work items viz &qca->ws_awake_rx
    &qca->ws_rx_vote_off, &qca->ws_awake_device, &qca->ws_tx_vote_off which
    require strict execution ordering. Hence, an ordered dedicated workqueue
    has been used to replace the deprecated create_singlethread_workqueue
    instance.

    WQ_MEM_RECLAIM has not been set since the driver is not being used on a
    memory reclaim path.

    Signed-off-by: Bhaktipriya Shridhar
    Signed-off-by: Marcel Holtmann

    Bhaktipriya Shridhar
     
  • The newly added bluetooth driver is based on the soc-specific support,
    but lacks the obvious compile-time dependency on that:

    drivers/bluetooth/btqcomsmd.o: In function `btqcomsmd_probe':
    btqcomsmd.c:(.text.btqcomsmd_probe+0x40): undefined reference to `qcom_wcnss_open_channel'
    btqcomsmd.c:(.text.btqcomsmd_probe+0x5c): undefined reference to `qcom_wcnss_open_channel'
    Makefile:969: recipe for target 'vmlinux' failed

    Fixes: 90c107dc8b2c ("Bluetooth: Introduce Qualcomm WCNSS SMD based HCI driver")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Marcel Holtmann

    Arnd Bergmann
     
  • kmalloc will print enough information in case of failure.

    Signed-off-by: Wolfram Sang
    Signed-off-by: Marcel Holtmann

    Wolfram Sang
     
  • Device 0cf3:e009 is one of the QCA ROME family.

    T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 4 Spd=12 MxCh= 0
    D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=0cf3 ProdID=e009 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

    Signed-off-by: Kai-Heng Feng
    Signed-off-by: Marcel Holtmann

    Kai-Heng Feng
     
  • wait_on_bit_timeout() returns one of the following three values:
    * 0 to indicate success.
    * -EINTR to indicate that a signal has been received;
    * -EAGAIN to indicate timeout;
    Make the wait_on_bit_timeout() callers check for these values.

    Signed-off-by: Bart Van Assche
    Signed-off-by: Johan Hedberg
    Signed-off-by: Marcel Holtmann

    Bart Van Assche
     
  • The Qualcomm WCNSS chip provides two SMD channels to the BT core; one
    for command and one for event packets. This driver exposes the two
    channels as a hci device.

    Signed-off-by: Bjorn Andersson
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Marcel Holtmann

    Bjorn Andersson
     

31 Aug, 2016

1 commit

  • This patch removes module_init()/module_exit() from driver code by using
    module_misc_device() macro. All modules in this patch has a print
    statement which is removed when module_misc_device() macro is used.
    If undesirable this patch can be dropped entirely, this is the only
    purpose of making this as a separate patch.

    Signed-off-by: PrasannaKumar Muralidharan
    Signed-off-by: Greg Kroah-Hartman

    PrasannaKumar Muralidharan
     

18 Jul, 2016

3 commits

  • 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
    Signed-off-by: Marcel Holtmann

    Amitkumar Karwar
     
  • 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
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • 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->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->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
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Samuel Ortiz
    Signed-off-by: Marcel Holtmann

    Geert Uytterhoeven
     

12 Jul, 2016

2 commits

  • 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
    Signed-off-by: Marcel Holtmann
    Cc: stable@vger.kernel.org

    Dmitry Tunin
     
  • 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
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     

10 Jul, 2016

1 commit

  • 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
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     

08 Jul, 2016

4 commits

  • 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
    Signed-off-by: Marcel Holtmann

    Yvain THONNART
     
  • 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] -----------------------------------------------------------------------------

    [ 33.413498] Call trace:
    [ 33.415928] [] dump_backtrace+0x0/0x190
    [ 33.421288] [] show_stack+0x1c/0x28
    [ 33.426305] [] dump_stack+0xa0/0xf8
    [ 33.431320] [] print_trailer+0x158/0x16c
    [ 33.436765] [] object_err+0x48/0x5c
    [ 33.441780] [] kasan_report+0x344/0x510
    [ 33.447141] [] __asan_loadN+0x20/0x150
    [ 33.452413] [] memcpy+0x20/0x50
    [ 33.457084] [] swiotlb_tbl_map_single+0x2ec/0x310
    [ 33.463305] [] map_single+0x24/0x30
    [ 33.468320] [] swiotlb_map_sg_attrs+0xec/0x21c
    [ 33.474286] [] __swiotlb_map_sg_attrs+0x48/0xec
    [ 33.480339] [] msdc_prepare_data.isra.11+0xf0/0x11c
    [ 33.486733] [] msdc_ops_request+0x74/0xf0
    [ 33.492266] [] __mmc_start_request+0x78/0x8c
    [ 33.498057] [] mmc_start_request+0x220/0x240
    [ 33.503848] [] mmc_wait_for_req+0x78/0x250
    [ 33.509468] [] mmc_io_rw_extended+0x2ec/0x388
    [ 33.515347] [] sdio_io_rw_ext_helper+0x160/0x268
    [ 33.521483] [] sdio_writesb+0x40/0x50
    [ 33.526677] [] btmrvl_sdio_host_to_card+0x124/0x1bc [btmrvl_sdio]
    [ 33.534283] [] btmrvl_service_main_thread+0x384/0x428 [btmrvl]
    [ 33.541626] [] 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] >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
    Signed-off-by: Marcel Holtmann

    Ricky Liang
     
  • The format of Intel Bluetooth firmware filename for bootloader product
    is ibt--.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
    Signed-off-by: Marcel Holtmann

    Tedd Ho-Jeong An
     
  • 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
    Signed-off-by: Marcel Holtmann

    Tedd Ho-Jeong An
     

13 May, 2016

1 commit

  • Add hw id to ath3k usb device list and btusb blacklist

    T: Bus=01 Lev=01 Prnt=01 Port=08 Cnt=02 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=3487 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

    Requires these firmwares:
    ar3k/AthrBT_0x11020100.dfu and ar3k/ramps_0x11020100_40.dfu
    Firmwares are available in linux-firmware.

    Device found in a laptop ASUS model N552VW. It's an Atheros AR9462 chip.

    Signed-off-by: Lauro Costa
    Signed-off-by: Marcel Holtmann

    Lauro Costa
     

07 May, 2016

1 commit

  • This patch adds support for Intel Bluetooth device 8265 also known
    as Windstorm Peak (WsP).

    T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 6 Spd=12 MxCh= 0
    D: Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=8087 ProdID=0a2b Rev= 0.10
    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
    Signed-off-by: Marcel Holtmann

    Tedd Ho-Jeong An
     

03 May, 2016

2 commits

  • gpiod_get_optional can return either ERR_PTR or NULL pointer.
    NULL case is not tested and then dereferenced later in desc_to_gpio.
    Fix this by using non optional version which returns ERR_PTR in any
    error case (this is not an optional gpio).
    Use the same non optional version for the host-wake gpio.

    Fixes: 765ea3abd116 ("Bluetooth: hci_intel: Retrieve host-wake IRQ")
    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • On some arm-based platforms, we need to configure platform specific
    parameters by device tree node and also define our node as a child
    node of parent SDIO host controller.
    This patch parses these parameters from device tree. It includes
    calibration data download to firmware, wakeup pin configured to firmware,
    and soc specific wake up gpio, which will be set as wakeup interrupt pin.

    Signed-off-by: Xinming Hu
    Signed-off-by: Amitkumar Karwar
    Signed-off-by: Marcel Holtmann

    Xinming Hu
     

22 Apr, 2016

1 commit