1. 19 6月, 2015 4 次提交
    • F
      Bluetooth: hci_core: remove obsolete adv_instance · d4c5af8f
      Florian Grandel 提交于
      Now that the obsolete adv_instance is no longer being referenced
      anywhere in the code it can be removed without breaking the build.
      Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      d4c5af8f
    • F
      Bluetooth: mgmt/hci_core: multi-adv for add_advertising*() · fffd38bc
      Florian Grandel 提交于
      The add_advertising() and add_advertising_complete() functions reference
      the now obsolete hdev->adv_instance struct. Both methods are being
      refactored to access the dynamic advertising instance list instead.
      
      This patch also introduces all logic necessary to actually deal with
      multiple instance advertising. Notably the mgmt_adv_inst_expired() and
      schedule_adv_inst() method are being referenced to schedule instances in
      a round robin fashion.
      
      This patch also introduces a "pending" flag into the adv_info struct.
      This is necessary to identify and remove recently added advertising
      instances when the HCI commands return with an error status code.
      Otherwise new advertising instances could be leaked without properly
      informing userspace about their existence.
      Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      fffd38bc
    • F
      Bluetooth: hci_core/mgmt: move adv timeout to hdev · 5d900e46
      Florian Grandel 提交于
      Currently the delayed work managing advertising duration and timeout is
      part of the advertising instance structure. This is not correct as only
      a single instance can be advertised at any given time. To implement
      round robin advertising a single delayed work structure is needed.
      
      To fix this the delayed work structure is being moved to the hci_dev
      structure. The instance specific variable is renamed to "remaining_time"
      to make it clear that this is the remaining lifetime of the instance and
      not the current advertising timeout.
      Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      5d900e46
    • F
      Bluetooth: hci_core/mgmt: Introduce multi-adv list · d2609b34
      Florian Grandel 提交于
      The current hci dev structure only supports a single advertising
      instance. To support multi-instance advertising it is necessary to
      introduce a linked list of advertising instances so that multiple
      advertising instances can be dynamically added and/or removed.
      
      In a first step, the existing adv_instance member of the hci_dev
      struct is supplemented by a linked list of advertising instances.
      This patch introduces the list and supporting list management
      infrastructure. The list is not being used yet.
      Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      d2609b34
  2. 09 6月, 2015 3 次提交
  3. 08 4月, 2015 2 次提交
  4. 02 4月, 2015 4 次提交
  5. 24 3月, 2015 2 次提交
  6. 18 3月, 2015 2 次提交
  7. 16 3月, 2015 1 次提交
  8. 15 3月, 2015 4 次提交
  9. 14 3月, 2015 2 次提交
  10. 13 3月, 2015 7 次提交
  11. 11 3月, 2015 1 次提交
  12. 07 3月, 2015 3 次提交
  13. 05 3月, 2015 1 次提交
    • J
      Bluetooth: fix service discovery behaviour for empty uuids filter · 82f8b651
      Jakub Pawlowski 提交于
      This patch fixes service discovery behaviour, when provided uuid filter
      is empty and HCI_QUIRK_STRICT_DUPLICATE_FILTER is set. Before this
      patch, empty uuid filter was unable to trigger scan restart, and that
      caused inconsistent behaviour in applications.
      
      Example: two DBus clients call BlueZ, one to find all devices with
      service abcd, second to find all devices with rssi smaller than -90.
      Sum of those filters, that is passed to mgmt_service_scan is empty
      filter, with no rssi or uuids set.
      That caused kernel not to restart scan when quirk was set.
      That was inconsistent with what happen when there's only one of those
      two filters set (scan is restarted and reports devices).
      
      To fix that, new variable hdev->discovery.result_filtering was
      introduced. It can indicate that filtered scan is running, no matter
      what uuid or rssi filter is set.
      Signed-off-by: NJakub Pawlowski <jpawlowski@google.com>
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      82f8b651
  14. 28 2月, 2015 1 次提交
  15. 21 2月, 2015 1 次提交
  16. 19 2月, 2015 2 次提交