coreboot icon indicating copy to clipboard operation
coreboot copied to clipboard

soc/intel/cmn/blk/cnvi: Add `_PRR` method for Bluetooth CNVi Reset

Open crawfxrd opened this issue 5 months ago • 1 comments

[ Upstream commit 782ae11bc7ac6570cc0d8a27c62eaa6b393de105 ]

The change introduces new Advanced Configuration and Power Interface (ACPI) methods to handle Bluetooth device states, including status checks and device reset procedures. Specifically, it adds a Power Resource for Reset (_PRR) method and the associated power resources to enable Operating System (OS)-level resets for Connectivity Integrated (CNVi) Bluetooth devices as specified in Intel document number 559910. This allows the OS to perform Bluetooth hardware recovery in case of errors, ensuring compliance with Intel's standards. The Power Resource ACPI code was adapted from Panther Lake (PTL) Firmware Support Package (FSP) revision 3144.01.

The new ACPI Bluetooth code introduces the CNMT mutex, similar to the USB Bluetooth ACPI code, to avoid simultaneous CNVi resets when executing Wi-Fi and Bluetooth power resource _RST methods.

TEST=The following two use cases were verified using acpidbg on a Fatcat device. 1. Test CNVi Bluetooth _RST() completion. acpidbg -b 'evaluate _SB.PCI0.CNVB.PRRS' # 0x0 acpidbg -b 'evaluate _SB.PCI0.CNVB.RSTT' # 0x0 acpidbg -b 'set N _SB.PCI0.CNVB.RSTT 1' # 0x1 acpidbg -b 'evaluate _SB.PCI0.CNVB.CNVP._RST' acpidbg -b 'evaluate _SB.PCI0.CNVB.PRRS' # 0x2 2. Test that CNVi Wi-Fi _RST calls CNVi Bluetooth CFLR method. acpidbg -b 'evaluate _SB.PCI0.CNVB.PRRS' # 0x0 acpidbg -b 'evaluate _SB.PCI0.CNVW.RSTT' # 0x0 acpidbg -b 'set N _SB.PCI0.CNVW.RSTT 1' # 0x0 acpidbg -b 'evaluate _SB.PCI0.CNVW.CNVP._RST' acpidbg -b 'evaluate _SB.PCI0.CNVB.PRRS' # 0x1

Change-Id: I2389901faf4fad131bb7226e356b47f4b1a4ddac

Reviewed-on: https://review.coreboot.org/c/coreboot/+/88111 Tested-by: build bot (Jenkins) [email protected] Reviewed-by: Bora Guvendik [email protected] Reviewed-by: Paul Menzel [email protected]

crawfxrd avatar Jul 16 '25 16:07 crawfxrd

This will hopefully stop the kernel error:

Bluetooth: hci0: No support for _PRR ACPI method

crawfxrd avatar Jul 16 '25 17:07 crawfxrd