1. 06 Jul, 2014 8 commits
    • Marcel Holtmann's avatar
      Bluetooth: Skip unconfigured init procedure for raw-only devices · cc78b44b
      Marcel Holtmann authored
      When the driver sets HCI_QUIRK_RAW_DEVICE, the controller will be set
      as unconfigured. However running the unconfigured init procecure is
      not useful since raw-only devices are not allowed to change its
      configuration. This change skips the init procedure and just allows
      user channel operation for this device.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      cc78b44b
    • Marcel Holtmann's avatar
      Bluetooth: Add support for Intel bootloader devices · 40df783d
      Marcel Holtmann authored
      Intel Bluetooth devices that boot up in bootloader mode can not
      be used as generic HCI devices, but their HCI transport is still
      valuable and so bring that up as raw-only devices.
      
      T:  Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 14 Spd=12   MxCh= 0
      D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=8087 ProdID=0a5a Rev= 0.00
      S:  Manufacturer=Intel(R) Corporation
      S:  Product=Intel(R) Wilkins Peak 2x2
      S:  SerialNumber=001122334455 WP_A0
      C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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=ff(vend.) Sub=00 Prot=00 Driver=(none)
      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: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      40df783d
    • Johan Hedberg's avatar
      Bluetooth: Use lower timeout for LE auto-connections · 09ae260b
      Johan Hedberg authored
      When we establish connections as a consequence of receiving an
      advertising report it makes no sense to wait the normal 20 second LE
      connection timeout. This patch modifies the hci_connect_le function to
      take an extra timeout value and uses a lower 2 second timeout for the
      auto-connection case. This timeout is intentionally chosen to be just a
      bit higher than the 1.28 second timeout that High Duty Cycle Advertising
      uses.
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      09ae260b
    • Marcel Holtmann's avatar
      Bluetooth: Clear HCI_RAW flag when controller becomes configured · 5ea234d3
      Marcel Holtmann authored
      When an unconfigured controllers reaches the configured state, it is
      important to change the HCI_RAW flag. It indicates to userspace that
      the controller is fully operational.
      
      External configuration allows to bring the controller back into an
      unconfigured state. In that case make sure HCI_RAW flag is set again.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      5ea234d3
    • Marcel Holtmann's avatar
      Bluetooth: Add support for changing the public device address · 9713c17b
      Marcel Holtmann authored
      This adds support for changing the public device address. This feature
      is required by controllers that do not provide a public address and
      have HCI_QUIRK_INVALID_BDADDR set.
      
      Even if a controller has a public device address, this is useful when
      an embedded system wants to use its own value. As long as the driver
      provides the set_bdaddr callback, this allows changing the device
      address before powering on the controller.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      9713c17b
    • Marcel Holtmann's avatar
      Bluetooth: Run controller setup after external configuration · d603b76b
      Marcel Holtmann authored
      When the external configuration triggers the switch to a configured
      controller, it means the setup needs to be run. Controllers that start
      out unconfigured have only run limited set of HCI commands. This is
      not enough for complete operation and thus run the setup procedure
      before announcing the new controller index.
      
      This introduces HCI_CONFIG flag as companion to HCI_SETUP flag. The
      HCI_SETUP flag is only used once for the initial setup procedure. And
      during that procedure hdev->setup driver callback is called. With the
      new HCI_CONFIG the switch from unconfigured to configured state is
      triggering the same setup procedure just without hdev->setup. This
      is required since bringing a controller back to unconfigured state
      from configured state is possible.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      d603b76b
    • Johan Hedberg's avatar
      Bluetooth: Fix sending Device Removed when clearing all parameters · 19de0825
      Johan Hedberg authored
      When calling Device Remove with BDADDR_ANY we should in a similar way
      emit Device Removed events as we do when removing a single device. Since
      we have to iterate the list and call device_removed() the dedicated
      hci_conn_params_clear_enabled() is not really useful anymore. This patch
      removes the helper function and does the event emission and list item
      removal in a single loop.
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      19de0825
    • Johan Hedberg's avatar
      Bluetooth: Restrict blocked device check in l2cap_recv_frame to LE · 9e1d7e15
      Johan Hedberg authored
      BR/EDR has the connection request and connection request rejection, but
      LE doesn't have anything similar. We still request LE connections to
      blocked devices to be disconnected but it's possible that ACL data slips
      through before that. The check in l2cap_recv_frame really only needs to
      be for LE and not BR/EDR because of this.
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      9e1d7e15
  2. 05 Jul, 2014 3 commits
  3. 04 Jul, 2014 27 commits
  4. 03 Jul, 2014 2 commits