1. 19 Aug, 2016 1 commit
  2. 18 Aug, 2016 2 commits
    • Jakub Pawlowski's avatar
      GATT: don't update link status for apps that were never connected · d921c78f
      Jakub Pawlowski authored
      Right now, in GATT_Deregister we make a call to
      gatt_update_app_use_link_flag, which might result in a call to
      GATT_SetIddleTimeout on links that this client was never connected to.
      
      In order to fix that, we must check if gatt_update_app_hold_link_status
      made any changes to p_tcb->app_hold_link. If not, then skip updating
      the timer.
      
      Change-Id: I6f18ec7fe4e80e048adc9e360cae703b7d64d62a
      d921c78f
    • Jakub Pawlowski's avatar
      Make gatt_attr use opportunistic connection · 8ed030ff
      Jakub Pawlowski authored
      This patch creates new connection mode - opportunistic connection. When
      such connection is made, no call to gatt_update_app_hold_link_status
      will be made when it's started.
      
      This means that connecting and disconnecting in this mode won't trigger
      disconnect timer. When other, app creates regular connection and then
      disconnects, the physical connection might get disconnected.
      
      Opportunistic connection is used only for code setting CCC right now.
      
      Bug: 30186455
      Change-Id: Ia5be7682b6c3dcb4993060f818dee603aef3e19e
      8ed030ff
  3. 09 Aug, 2016 1 commit
  4. 05 Aug, 2016 1 commit
  5. 28 Jul, 2016 2 commits
  6. 27 Jul, 2016 1 commit
    • Ayan Ghosh's avatar
      Proper handling of AV connection collision · b82a27ed
      Ayan Ghosh authored
      Use case:
      1. Pair to Remote
      2. Turn OFF/ON BT on DUT
      3. After DUT's BT is turned ON, Remote would reconnect to DUT
      
      Failure:
        Bluetooth settings UI continues to display Connecting when
        BT was Turned OFF and ON.
      
      Root cause:
      - This is a connection collision case where remote is not responding
        to DUT initiated SDP attribute fetch request for AV. AV holds outgoing
        connection for sometime and meanwhile remote starts AV connection
        from its end. Then DUT disconnects the SDP channel after a second
        without waiting to fetch requested info, and this confuses DUT's AV
        state machine. The outgoing connection could not proceed as incoming
        AV L2CAP connects, because DUT's AV state machine is not equipped
        with handling this scenario. On incoming connection timer expiry, it
        does not start AV media channel as it finds AV Open has not been done
        from upper layer after incoming L2CAP got connected.
      
      - When the incoming path 2s timer expires, the DUT checks whether Open
        has been called after incoming state is set. This is not the case here,
        because Open was triggered earlier as as part of the outgoing
        connection. As a result, A2DP cannot connect at all.
      
      Fix:
      - Properly set collision flags for handling AV connection collision.
      - Update BTA AV handle even when BTIF AV state machine is yet to be built.
      
      Bug: 30362987
      Change-Id: I02a3adb62479b0f762bc792a5727d06e11eaaa52
      (cherry picked from commit db1e3a5fbb41cd1faf572c5f89ec9212c5ff2986)
      b82a27ed
  7. 25 Jul, 2016 1 commit
  8. 24 Jul, 2016 1 commit
    • Andre Eisenbach's avatar
      Remove position dependent lookup tables in AT command parser · 1e7afc82
      Andre Eisenbach authored
      The various position dependent lookup tables in the AT command parser
      were out of sync, causing invalid responses to the AT+CBPS command for
      example.
      
      This patch gets rid of positionally dependent enums for simple lookup
      tables that correlate all the values for easier, less error prone
      maintenance of the related tables.
      
      Change-Id: I84f7d4f4a803e6e52bf2021c6c74917e90bbc846
      Fixes: 29978908
      1e7afc82
  9. 19 Jul, 2016 1 commit
    • ugo_yu's avatar
      GATT: Deregister notification when a GATT connection is closed · 7592bcfe
      ugo_yu authored
      Precondition:
      1. Pair with specific HOGP mouse.
      
      Steps:
      1. Pair with HOGP mouse (iBuffalo BSMBB09DS)
      2. Unpair the mouse.
      3. Pair the mouse again.
      
      Failure:
      Pairing is successful, but the mouse won't connect.
      
      Root Cause:
      Some HOGP mice send notifications before the stack writes the
      client characteristic configuration descriptor.
      The Bluetooth stack doesn't deregister these notifiactions
      when disconnecting.
      
      Fix:
      Deregister notifications when the GATT connection closes.
      
      Fixes: 29111689
      Change-Id: I520faeaa5fc396381cb248d3a2c49efbffa12261
      7592bcfe
  10. 16 Jul, 2016 1 commit
  11. 15 Jul, 2016 1 commit
    • Subramanian Srinivasan's avatar
      Process Gatt read multiple response properly · 94b4a1ad
      Subramanian Srinivasan authored
      The Gatt server multi response queue is made NULL after each Gatt
      server response is sent by BT stack in response to the remote Gatt
      client's request. But the multi response queue is not initialized
      again to process subsequent read multiple Gatt server responses.
      Hence, the BT stack does not send Gatt server responses for the
      subsequent read multiple requests from remote device which inturn
      leads to disconnection. This change would process read multiple
      responses by initializing the queue when it is null.
      
      Some of Bluetooth certification test cases involve testing
      Gatt server's capability to process and send read multiple
      response.
      
      Test case: TC_GAR_SR_BV_05_C
      
      This change also cleans up unnecessary initialization and freeing
      of multi rsp queue. This change makes sure that the stack initializes
      multi rsp queue only when it is necessary(ie only when the Gatt
      multiple read response is being processed).
      
      Bug: 29011255
      
      Change-Id: Ia3e2e1569ee16cac9c518f95501945257b9fb7fd
      (cherry picked from commit 3737592a7846766083041e81d72a2fab0b27fb38)
      94b4a1ad
  12. 12 Jul, 2016 1 commit
  13. 11 Jul, 2016 1 commit
    • Jacky Cheung's avatar
      New status code for two SMP authorization failures · 6984b19d
      Jacky Cheung authored
      On BTA_DM_AUTH_SMP_UNKNOWN_ERR and BTA_DM_AUTH_SMP_CONN_TOUT, bond state
      status will be notified as BT_STATUS_AUTH_FAILURE.  This is observed during
      the pairing flow with iOS devices.
      
      Plus minor cleanup on SMP errors and fail reasons.
      
      Bug: 29779689
      Change-Id: Ia32fe6bb84b07272d5159409f65217a06a2e5f8e
      6984b19d
  14. 07 Jul, 2016 1 commit
  15. 06 Jul, 2016 1 commit
  16. 02 Jul, 2016 1 commit
    • Jacky Cheung's avatar
      SMP: Delay authorization complete. · 29e70e38
      Jacky Cheung authored
      Delay authorization complete during Bond Pending state in SMP.
      Instead of automatically advancing the Bond Pending state, create
      a 500ms window to allow the slave to stop pairing by sending over
      the Pairing Failed command during the Bond Pending state.
      
      BUG: 28475887
      Change-Id: Id6c30247d15258cd18eb34827694b6cd79ca753a
      29e70e38
  17. 29 Jun, 2016 1 commit
    • Andre Eisenbach's avatar
      Log RSSI when A2DP buffers are flushed · ade5776f
      Andre Eisenbach authored
      To add another datapoint and potentially narrow down *why* we had to
      flush the buffers, add RSSI logging to keep track of signal strength
      during audio drop-out events.
      
      Change-Id: Ie52f56290951130165a9f375a898a9bacf459d55
      ade5776f
  18. 27 Jun, 2016 2 commits
  19. 24 Jun, 2016 5 commits
  20. 23 Jun, 2016 2 commits
  21. 22 Jun, 2016 4 commits
  22. 21 Jun, 2016 2 commits
  23. 20 Jun, 2016 2 commits
    • Matadeen Mishra's avatar
      L2CAP: Handle invalid HCI packets · 2e456265
      Matadeen Mishra authored
      am: 92e0f19f
      
      Change-Id: I3df89a1a7933976c30ab3cdf4851149bc128d839
      2e456265
    • Matadeen Mishra's avatar
      L2CAP: Handle invalid HCI packets · 92e0f19f
      Matadeen Mishra authored
      - Handled Buffer over flow for uint16_t
      - Discard invalid HCI packets from Codenomican test
        tool as data length and actual data not matching
        during reassembly
      
      Use case:
      Execute L2CAP test suit from Defensics Codenomican
      
      Steps:
      1. Pair and connect DUT to Codenomican tool
      2. Execute L2CAP test suit from Defensics Codenomican
      
      Failure:
      Crash observed on DUT and Codenomican tool stuck in execution.
      
      Root cause:
      Codenomican tool sending invalid HCI packets to DUT and
      there are no checks to handle buffer over flow and other invalid data
      from Codenomican tool.
      
      Bug: 29498064
      Change-Id: I6f93c80244fc39d607ad285185136bbbca83d7ae
      92e0f19f
  24. 17 Jun, 2016 2 commits
  25. 15 Jun, 2016 2 commits