PCI opregions: Ignore bogus _BBN on non-root busses
avdgrinten opened this issue · 2 comments
avdgrinten commented
Some AML contains _BBN nodes at non-root busses. For non-root busses, we should not care about _BBN at all.
AML found in the wild:
Device (EXP6) {
Name (_ADR, 0x001C0005) // _ADR: Address
OperationRegion (PXCS, PCI_Config, Zero, 0xE0)
Field (PXCS, AnyAcc, NoLock, WriteAsZeros) {
VDID, 16,
Offset (0x19),
SECB, 8,
Offset (0x52),
, 13,
LASX, 1,
Offset (0x5A),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset (0x5B),
LSCX, 1,
Offset (0x60),
Offset (0x62),
PSPX, 1,
Offset (0xD8),
, 30,
HPEN, 1,
PMEN, 1,
, 30,
HPSX, 1,
PMSX, 1
}
Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number {
Return (SECB) /* \_SB_.PCI0.EXP6.SECB */
}
This currently causes a failure (i.e., an infinite loop) in LAI since LAI tries to run _BBN
to get the bus number which causes a read from the bus.
RicardoLuis0 commented
pretty sure this can be closed now with #82
avdgrinten commented
Thanks for the reminder.