• 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
hci_event.c 42.9 KB