linux_dsm_epyc7002/net/bluetooth
Marcel Holtmann 3a6afbd217 Bluetooth: Fix endless loop with HCI_QUIRK_RESET_ON_CLOSE
Really early versions of the Bluetooth specification were unclear
with the behavior of HCI Reset for USB devices. They assumed that
also an USB reset needs to be issued. Later Bluetooth specifications
cleared this out and it is safe to call HCI Reset without affecting
the transport.

For old devices that misbehave, the HCI_QUIRK_RESET_ON_CLOSE quirk
was introduced to postpone the HCI Reset until the device was no
longer in use.

One of these devices is the Digianswer BPA-105 Bluetooth Protocol
Analyzer. The only problem now is that with the quirk set, the
HCI Reset is also executed at the end of the setup phase. So the
controller gets configured and then it disconnects from the USB
bus, connects again, gets configured and of course disconnects
again. This game goes on forever.

For devices that need HCI_QUIRK_RESET_ON_CLOSE it is important
that the HCI Reset is not executed after the setup phase. In
specific when HCI_AUTO_OFF is set, do not call HCI Reset when
closing the device.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2013-10-11 19:48:11 +02:00
..
bnep Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
cmtp Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
hidp Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2013-09-06 09:30:36 -07:00
rfcomm Merge git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth 2013-09-27 11:56:14 -03:00
a2mp.c Bluetooth: Move a2mp.h header file into net/bluetooth/ 2013-10-11 00:10:05 +02:00
a2mp.h Bluetooth: Move a2mp.h header file into net/bluetooth/ 2013-10-11 00:10:05 +02:00
af_bluetooth.c Bluetooth: Add clarifying comment to bt_sock_wait_state() 2013-09-25 14:30:10 -03:00
amp.c Bluetooth: Move a2mp.h header file into net/bluetooth/ 2013-10-11 00:10:05 +02:00
amp.h Bluetooth: Move amp.h header file into net/bluetooth/ 2013-10-11 00:10:03 +02:00
hci_conn.c Bluetooth: Make LE scan interval and window a controller option 2013-10-11 18:18:11 +02:00
hci_core.c Bluetooth: Fix endless loop with HCI_QUIRK_RESET_ON_CLOSE 2013-10-11 19:48:11 +02:00
hci_event.c Bluetooth: Move a2mp.h header file into net/bluetooth/ 2013-10-11 00:10:05 +02:00
hci_sock.c Bluetooth: Move skb->dev assignment for hdev->send into central place 2013-10-11 00:10:09 +02:00
hci_sysfs.c PTR_RET is now PTR_ERR_OR_ZERO(): Replace most. 2013-07-15 11:25:01 +09:30
Kconfig Bluetooth: trivial: Remove newline before EOF 2012-10-24 00:42:47 -02:00
l2cap_core.c Bluetooth: Move smp.h header file into net/bluetooth/ 2013-10-11 00:10:07 +02:00
l2cap_sock.c Bluetooth: Move smp.h header file into net/bluetooth/ 2013-10-11 00:10:07 +02:00
lib.c bluetooth: Remove unneeded batostr function 2012-09-27 18:10:43 -03:00
Makefile Bluetooth: Enable -D__CHECK_ENDIAN__ for sparse by default 2013-10-02 09:10:05 +03:00
mgmt.c Bluetooth: Add management command for setting LE scan parameters 2013-10-11 18:18:13 +02:00
sco.c Bluetooth: Prevent transparent SCO on older devices 2013-08-21 16:47:12 +02:00
smp.c Bluetooth: Move smp.h header file into net/bluetooth/ 2013-10-11 00:10:07 +02:00
smp.h Bluetooth: Move smp.h header file into net/bluetooth/ 2013-10-11 00:10:07 +02:00