Skip to content

platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR

Steve Best requested to merge sfbest/centos-stream-9:31058 into main

JIRA: https://issues.redhat.com/browse/RHEL-31058

Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=61367271

Tested: Did sanity boot testing Intel (intel-arrowlake-s-02) system.

commit aec7d25b497ce4a8d044e9496de0aa433f7f8f06
Author: Hans de Goede hdegoede@redhat.com
Date: Mon Mar 4 14:43:55 2024 +0100

platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR  

On Goldmont p2sb_bar() only ever gets called for 2 devices, the actual P2SB  
devfn 13,0 and the SPI controller which is part of the P2SB, devfn 13,2.  

But the current p2sb code tries to cache BAR0 info for all of  
devfn 13,0 to 13,7 . This involves calling pci_scan_single_device()  
for device 13 functions 0-7 and the hw does not seem to like  
pci_scan_single_device() getting called for some of the other hidden  
devices. E.g. on an ASUS VivoBook D540NV-GQ065T this leads to continuous  
ACPI errors leading to high CPU usage.  

Fix this by only caching BAR0 info and thus only calling  
pci_scan_single_device() for the P2SB and the SPI controller.  

Fixes: 5913320eb0b3 ("platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe")  
Reported-by: Danil Rybakov <danilrybakov249@gmail.com>  
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218531  
Tested-by: Danil Rybakov <danilrybakov249@gmail.com>  
Signed-off-by: Hans de Goede <hdegoede@redhat.com>  
Link: https://lore.kernel.org/r/20240304134356.305375-2-hdegoede@redhat.com  

Signed-off-by: Steve Best sbest@redhat.com

Merge request reports