soc/intel/alderlake: skip external buses for D-states list

The devices in the list that was introduced in commit c66ea98577
("soc/intel/alderlake: provide a list of D-states to enter
LPM") are all internal. This CL skips the external buses (which caused
the addition of packages to non-existant paths such as
"_SB.PCI0.RP1.MCHC", and warnings from the kernel)

BUG=b:231582182
TEST=Built and tested on anahera by verifying SSDT contents

Change-Id: I3785b2b2af85d96e2e1296b6cfdefcd72080b5fe
Signed-off-by: Eran Mitrani <mitrani@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70163
Reviewed-by: Tarun Tuli <taruntuli@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
This commit is contained in:
Eran Mitrani 2022-11-29 12:54:53 -08:00 committed by Felix Held
parent 50a3265017
commit 13e151f31c
1 changed files with 3 additions and 0 deletions

View File

@ -251,6 +251,9 @@ static enum dev_sleep_states get_min_sleep_state(const struct device *dev)
return DEFAULT_CPU_D_STATE; return DEFAULT_CPU_D_STATE;
case DEVICE_PATH_PCI: case DEVICE_PATH_PCI:
/* skip external buses*/
if (dev->bus->secondary != 0)
return NONE;
for (size_t i = 0; i < ARRAY_SIZE(min_pci_sleep_states); i++) for (size_t i = 0; i < ARRAY_SIZE(min_pci_sleep_states); i++)
if (min_pci_sleep_states[i].pci_dev == dev->path.pci.devfn) if (min_pci_sleep_states[i].pci_dev == dev->path.pci.devfn)
return min_pci_sleep_states[i].min_sleep_state; return min_pci_sleep_states[i].min_sleep_state;