There can be error conditions within Intel BT firmware that can cause it to get stuck, with the only way out being toggle the reset pin to the device. (I do not have the details about the issues that lead to such conditions, Intel folks copied here can elaborate if needed). Thus, this is an effor to be able to toggle the reset line from the driver if it detects such a situation. It makes few enhancements to the common framework which I think may be useful for other unrelated problems.
Dmitry Torokhov (2): usb: split code locating ACPI companion into port and device usb: assign ACPI companions for embedded USB devices (This basically allows ACPI nodes to be attached to the USB devices, thus useful for any onboard / embedded USB devices that wants to get some info from the ACPI). Rajat Jain (3): Bluetooth: Reset Bluetooth chip after multiple command timeouts Bluetooth: btusb: Collect the common Intel assignments together Bluetooth: btusb: Use the hw_reset method to allow resetting the BT chip drivers/bluetooth/btusb.c | 63 +++++++++--- drivers/usb/core/usb-acpi.c | 163 +++++++++++++++++++------------ include/net/bluetooth/hci.h | 8 ++ include/net/bluetooth/hci_core.h | 2 + net/bluetooth/hci_core.c | 15 ++- 5 files changed, 171 insertions(+), 80 deletions(-) -- 2.19.1.1215.g8438c0b245-goog