]> git.itanic.dy.fi Git - linux-stable/commit
platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR
authorHans de Goede <hdegoede@redhat.com>
Mon, 4 Mar 2024 13:43:55 +0000 (14:43 +0100)
committerHans de Goede <hdegoede@redhat.com>
Tue, 5 Mar 2024 09:16:27 +0000 (10:16 +0100)
commitaec7d25b497ce4a8d044e9496de0aa433f7f8f06
treeae61c8e741d5a626be461449f5d9c286dc5d7534
parent427c70dec738318b7f71e1b9d829ff0e9771d493
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
drivers/platform/x86/p2sb.c