Bug 199125

Summary: Suspending to mem hangs the machine without the BT driver loaded
Product: Drivers Reporter: Imre Deak (imre.deak)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: NEW ---    
Severity: normal    
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 4.16.0-rc5 Subsystem:
Regression: No Bisected commit-id:

Description Imre Deak 2018-03-15 09:29:32 UTC
On an Intel GLK NUC machine suspending to memory (S3) hangs if the BT driver is not enabled. Specifically the following kconfig options need to be enabled to avoid the hang:

CONFIG_BT
CONFIG_BT_INTEL
CONFIG_BT_HCIBTUSB

An alternative is to disable the Bluetooth onboard device in BIOS.

The hang happens after execution transfers to BIOS code during suspend, after the very last ACPI register write to entry S3 in
drivers/acpi/acpica/hwsleep.c:

after the following call in acpi_hw_legacy_sleep():
/* Write #2: Write both SLP_TYP + SLP_EN */                                                                                                               
        status = acpi_hw_write_pm1_control(pm1a_control, pm1b_control); 

In general not loading the BT driver may be a useful thing to work-around potential BT driver bugs, or during isolation of a bug without a known reason (by unloading drivers one-by-one and seeing if the problem re-occurs).