From ea17ba0cf2b93bcc59ccbbf574cddafc1f9ec364 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Wed, 9 Apr 2025 12:44:30 +0100 Subject: [PATCH] drivers/usb/intel_bluetooth: Replace _PRx methods with _S0W object The previous implementation used _PS0 and _PS3 methods to control the device power states. These are now replaced by a _S0W object to better align with both coreboot's existing RTD3 driver, and the examples in the ACPI specification. This ensures that the Bluetooth device is recognized as capable of reaching D3Hot when the system is in S0. Test=build and boot starlite_adl with Windows and Linux, check Bluetooth is functional and power draw decreases ~0.4W with no devices connected. Change-Id: I8aa49ee2220ba2ea39b343ea9a9486fca9f5f3d5 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/87241 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/drivers/usb/acpi/intel_bluetooth.c | 31 +++++--------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/src/drivers/usb/acpi/intel_bluetooth.c b/src/drivers/usb/acpi/intel_bluetooth.c index 180320349b..6da937af34 100644 --- a/src/drivers/usb/acpi/intel_bluetooth.c +++ b/src/drivers/usb/acpi/intel_bluetooth.c @@ -48,6 +48,11 @@ void acpi_device_intel_bt(const struct acpi_gpio *enable_gpio, const struct acpi_gpio *reset_gpio, bool audio_offload) { +/* + * Name (_S0W, 3) + */ + acpigen_write_name_integer("_S0W", ACPI_DEVICE_SLEEP_D3_HOT); + /* * Name (RDLY, 0x69) */ @@ -233,32 +238,6 @@ void acpi_device_intel_bt(const struct acpi_gpio *enable_gpio, } acpigen_pop_len(); -/* - * Method (_PS0, 0, NotSerialized) - * { - * \_SB.PCI0.SBTE(1) - * } - */ - acpigen_write_method("_PS0", 0); - { - acpigen_emit_namestring("\\_SB.PCI0.SBTE"); - acpigen_emit_byte(1); - } - acpigen_pop_len(); - -/* - * Name (_PS3, Package (0x01) - * { - * \_SB.PCI0.SBTE(0) - * } - */ - acpigen_write_method("_PS3", 0); - { - acpigen_emit_namestring("\\_SB.PCI0.SBTE"); - acpigen_emit_byte(0); - } - acpigen_pop_len(); - /* * Method (AOLD, 0, NotSerialized) * {