soc/intel/cmn/blk/cnvi: Add _PRR
method for Bluetooth CNVi Reset
#262
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[ Upstream commit 782ae11 ]
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]