1. 20 Apr, 2009 16 commits
  2. 19 Apr, 2009 3 commits
    • Marcel Holtmann's avatar
      Bluetooth: Add workaround for wrong HCI event in eSCO setup · 9499237a
      Marcel Holtmann authored
      The Broadcom chips with 2.1 firmware handle the fallback case to a SCO
      link wrongly when setting up eSCO connections.
      
        < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17
            handle 11 voice setting 0x0060
        > HCI Event: Command Status (0x0f) plen 4
            Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
        > HCI Event: Connect Complete (0x03) plen 11
            status 0x00 handle 1 bdaddr 00:1E:3A:xx:xx:xx type SCO encrypt 0x01
      
      The Link Manager negotiates the fallback to SCO, but then sends out
      a Connect Complete event. This is wrong and the Link Manager should
      actually send a Synchronous Connection Complete event if the Setup
      Synchronous Connection has been used. Only the remote side is allowed
      to use Connect Complete to indicate the missing support for eSCO in
      the host stack.
      
      This patch adds a workaround for this which clearly should not be
      needed, but reality is that broken Broadcom devices are deployed.
      
      Based on a report by Ville Tervo <ville.tervo@nokia.com>
      Signed-off-by: default avatarMarcel Holtman <marcel@holtmann.org>
      9499237a
    • Marcel Holtmann's avatar
      Bluetooth: Fallback from eSCO to SCO on unspecified error · 732547f9
      Marcel Holtmann authored
      Some Bluetooth chips (like the ones from Texas Instruments) don't do
      proper eSCO negotiations inside the Link Manager. They just return an
      error code and in case of the Kyocera ED-8800 headset it is just a
      random error.
      
        < HCI Command: Setup Synchronous Connection 0x01|0x0028) plen 17
          handle 1 voice setting 0x0060
        > HCI Event: Command Status (0x0f) plen 4
          Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
        > HCI Event: Synchronous Connect Complete (0x2c) plen 17
          status 0x1f handle 257 bdaddr 00:14:0A:xx:xx:xx type eSCO
          Error: Unspecified Error
      
      In these cases it is up to the host stack to fallback to a SCO setup
      and so retry with SCO parameters.
      
      Based on a report by Nick Pelly <npelly@google.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      732547f9
    • Johan Hedberg's avatar
      Bluetooth: Fix removing of RFCOMM DLC timer with DEFER_SETUP · e2139b32
      Johan Hedberg authored
      There is a missing call to rfcomm_dlc_clear_timer in the case that
      DEFER_SETUP is used and so the connection gets disconnected after the
      timeout even if it was successfully accepted previously.
      
      This patch adds a call to rfcomm_dlc_clear_timer to rfcomm_dlc_accept
      which will get called when the user accepts the connection by calling
      read() on the socket.
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@nokia.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      e2139b32
  3. 17 Apr, 2009 21 commits