|
Takashi Iwai |
bd8790 |
From 8cc0991c09bfd11fd878b0321a7a06724520d879 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
bd8790 |
From: Alex Deucher <alexander.deucher@amd.com>
|
|
Takashi Iwai |
bd8790 |
Date: Fri, 20 Dec 2019 19:17:02 -0500
|
|
Takashi Iwai |
bd8790 |
Subject: [PATCH] ALSA: hda/hdmi - fix atpx_present when CLASS is not VGA
|
|
Takashi Iwai |
bd8790 |
Git-commit: 8cc0991c09bfd11fd878b0321a7a06724520d879
|
|
Takashi Iwai |
d0f0e2 |
Patch-mainline: v5.5-rc5
|
|
Takashi Iwai |
bd8790 |
References: bsc#1051510
|
|
Takashi Iwai |
bd8790 |
|
|
Takashi Iwai |
bd8790 |
You can't use PCI_BASE_CLASS with pci_get_class(). This
|
|
Takashi Iwai |
bd8790 |
happens to work by luck on devices with PCI_CLASS_DISPLAY_VGA, but
|
|
Takashi Iwai |
bd8790 |
misses PCI_CLASS_DISPLAY_OTHER. Add a check for those as well.
|
|
Takashi Iwai |
bd8790 |
|
|
Takashi Iwai |
bd8790 |
Fixes: 586bc4aab878 ("ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD")
|
|
Takashi Iwai |
bd8790 |
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
|
Takashi Iwai |
bd8790 |
Link: https://lore.kernel.org/r/20191221001702.1338587-1-alexander.deucher@amd.com
|
|
Takashi Iwai |
bd8790 |
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
bd8790 |
|
|
Takashi Iwai |
bd8790 |
---
|
|
Takashi Iwai |
bd8790 |
sound/pci/hda/hda_intel.c | 12 +++++++++++-
|
|
Takashi Iwai |
bd8790 |
1 file changed, 11 insertions(+), 1 deletion(-)
|
|
Takashi Iwai |
bd8790 |
|
|
Takashi Iwai |
bd8790 |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
|
|
Takashi Iwai |
bd8790 |
index b856b89378ac..f69c8de64bd6 100644
|
|
Takashi Iwai |
bd8790 |
--- a/sound/pci/hda/hda_intel.c
|
|
Takashi Iwai |
bd8790 |
+++ b/sound/pci/hda/hda_intel.c
|
|
Takashi Iwai |
bd8790 |
@@ -1410,7 +1410,17 @@ static bool atpx_present(void)
|
|
Takashi Iwai |
bd8790 |
acpi_handle dhandle, atpx_handle;
|
|
Takashi Iwai |
bd8790 |
acpi_status status;
|
|
Takashi Iwai |
bd8790 |
|
|
Takashi Iwai |
bd8790 |
- while ((pdev = pci_get_class(PCI_BASE_CLASS_DISPLAY << 16, pdev)) != NULL) {
|
|
Takashi Iwai |
bd8790 |
+ while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) {
|
|
Takashi Iwai |
bd8790 |
+ dhandle = ACPI_HANDLE(&pdev->dev);
|
|
Takashi Iwai |
bd8790 |
+ if (dhandle) {
|
|
Takashi Iwai |
bd8790 |
+ status = acpi_get_handle(dhandle, "ATPX", &atpx_handle);
|
|
Takashi Iwai |
bd8790 |
+ if (!ACPI_FAILURE(status)) {
|
|
Takashi Iwai |
bd8790 |
+ pci_dev_put(pdev);
|
|
Takashi Iwai |
bd8790 |
+ return true;
|
|
Takashi Iwai |
bd8790 |
+ }
|
|
Takashi Iwai |
bd8790 |
+ }
|
|
Takashi Iwai |
bd8790 |
+ }
|
|
Takashi Iwai |
bd8790 |
+ while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
|
|
Takashi Iwai |
bd8790 |
dhandle = ACPI_HANDLE(&pdev->dev);
|
|
Takashi Iwai |
bd8790 |
if (dhandle) {
|
|
Takashi Iwai |
bd8790 |
status = acpi_get_handle(dhandle, "ATPX", &atpx_handle);
|
|
Takashi Iwai |
bd8790 |
--
|
|
Takashi Iwai |
bd8790 |
2.16.4
|
|
Takashi Iwai |
bd8790 |
|