mb/google/brya/acpi/cnvi_bt_reset: Fix BT re-enumeration under Windows
The previous implementation violated ACPI spec by attempting to implement a reset via _ON/_OFF, which are to be used exclusively for device power management/power state transitions. As a result, under Windows the CNVi BT device was continually re-enumerating and unable to be used. Fix this by moving the reset logic out of _ON/_OFF and into _RST, where it belongs. TEST=build/boot Win11 on google/taeko, verify BT device is functional. Change-Id: I1627fefbf7747129344291cc8855c15dda50cf5f Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/90582 Reviewed-by: Sean Rhodes <sean@starlabs.systems> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
524ad684af
commit
2aca802e85
1 changed files with 18 additions and 20 deletions
|
|
@ -22,7 +22,7 @@ External (\_SB.PCI0.GTXS, MethodObj)
|
|||
|
||||
Scope (\_SB.PCI0.XHCI.RHUB.HS10)
|
||||
{
|
||||
PowerResource (CTTR, 0x00, 0x0000)
|
||||
PowerResource (CTTR, 0x05, 0x0000)
|
||||
{
|
||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
||||
{
|
||||
|
|
@ -31,32 +31,30 @@ Scope (\_SB.PCI0.XHCI.RHUB.HS10)
|
|||
|
||||
Method (_ON, 0, NotSerialized) // _ON_: Power On
|
||||
{
|
||||
If (LEqual (\_SB.PCI0.GTXS(BT_RESET_GPIO), 0)) {
|
||||
\_SB.PCI0.STXS(CNV_BTEN)
|
||||
\_SB.PCI0.STXS(CNV_BT_IF_SELECT)
|
||||
\_SB.PCI0.STXS(BT_RESET_GPIO)
|
||||
}
|
||||
}
|
||||
|
||||
Method (_OFF, 0, NotSerialized) // _OFF: Power Off
|
||||
{
|
||||
If (LEqual (\_SB.PCI0.GTXS(BT_RESET_GPIO), 1)) {
|
||||
\_SB.PCI0.CTXS(CNV_BTEN)
|
||||
\_SB.PCI0.CTXS(CNV_BT_IF_SELECT)
|
||||
\_SB.PCI0.CTXS(BT_RESET_GPIO)
|
||||
Sleep (BT_RESET_DELAY_MS)
|
||||
}
|
||||
}
|
||||
|
||||
Method (_RST, 0, NotSerialized) // _RST: Device Reset
|
||||
{
|
||||
\_SB.PCI0.CTXS(CNV_BTEN)
|
||||
\_SB.PCI0.CTXS(CNV_BT_IF_SELECT)
|
||||
\_SB.PCI0.CTXS(BT_RESET_GPIO)
|
||||
Sleep (BT_RESET_DELAY_MS)
|
||||
\_SB.PCI0.STXS(CNV_BTEN)
|
||||
\_SB.PCI0.STXS(CNV_BT_IF_SELECT)
|
||||
\_SB.PCI0.STXS(BT_RESET_GPIO)
|
||||
Sleep (BT_RESET_DELAY_MS)
|
||||
}
|
||||
}
|
||||
|
||||
Name (_PRR, Package (0x01) // _PRR: Power Resource for Reset
|
||||
Method (_PRR, 0, NotSerialized) // _PRR: Power Resource for Reset
|
||||
{
|
||||
CTTR
|
||||
})
|
||||
|
||||
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
|
||||
{
|
||||
CTTR
|
||||
})
|
||||
Return (Package (0x01)
|
||||
{
|
||||
CTTR
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue