]> git.baikalelectronics.ru Git - kernel.git/commit
Bluetooth: Add SCO fallback for eSCO connection attempts
authorMarcel Holtmann <marcel@holtmann.org>
Fri, 6 Feb 2009 08:13:37 +0000 (09:13 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 27 Feb 2009 05:14:37 +0000 (06:14 +0100)
commit5e58b2432f8d109d59129896a641be20ba476839
treef51d32d047bbf27a106db679292c10a81b339836
parentcabb45d608b0c8902b6c1aba5b69438d420fb36b
Bluetooth: Add SCO fallback for eSCO connection attempts

When attempting to setup eSCO connections it can happen that some link
manager implementations fail to properly negotiate the eSCO parameters
and thus fail the eSCO setup. Normally the link manager is responsible
for the negotiation of the parameters and actually fallback to SCO if
no agreement can be reached. In cases where the link manager is just too
stupid, then at least try to establish a SCO link if eSCO fails.

For the Bluetooth devices with EDR support this includes handling packet
types of EDR basebands. This is particular tricky since for the EDR the
logic of enabling/disabling one specific packet type is turned around.
This fix contains an extra bitmask to disable eSCO EDR packet when
trying to fallback to a SCO connection.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/bluetooth/hci.h
net/bluetooth/hci_conn.c
net/bluetooth/hci_event.c