summaryrefslogtreecommitdiffstats
path: root/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch')
-rw-r--r--0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch104
1 files changed, 0 insertions, 104 deletions
diff --git a/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch b/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch
deleted file mode 100644
index 822e497af..000000000
--- a/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 5afcaee5ee71ba730fde8f66da7e320fb7e674d2 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 19 Nov 2018 17:38:59 +0100
-Subject: [PATCH 4.20 regression fix] ACPI / platform: Add SMB0001 HID to
- forbidden_id_list
-
-Many HP AMD based laptops contain an SMB0001 device like this:
-
-Device (SMBD)
-{
- Name (_HID, "SMB0001") // _HID: Hardware ID
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
- {
- IO (Decode16,
- 0x0B20, // Range Minimum
- 0x0B20, // Range Maximum
- 0x20, // Alignment
- 0x20, // Length
- )
- IRQ (Level, ActiveLow, Shared, )
- {7}
- })
-}
-
-The legacy style IRQ resource here causes acpi_dev_get_irqresource() to
-be called with legacy=true and this message to show in dmesg:
-ACPI: IRQ 7 override to edge, high
-
-This causes issues when later on the AMD0030 GPIO device gets enumerated:
-
-Device (GPIO)
-{
- Name (_HID, "AMDI0030") // _HID: Hardware ID
- Name (_CID, "AMDI0030") // _CID: Compatible ID
- Name (_UID, Zero) // _UID: Unique ID
- Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
- {
- Name (RBUF, ResourceTemplate ()
- {
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
- {
- 0x00000007,
- }
- Memory32Fixed (ReadWrite,
- 0xFED81500, // Address Base
- 0x00000400, // Address Length
- )
- })
- Return (RBUF) /* \_SB_.GPIO._CRS.RBUF */
- }
-}
-
-Now acpi_dev_get_irqresource() gets called with legacy=false, but because
-of the earlier override of the trigger-type acpi_register_gsi() returns
--EBUSY (because we try to register the same interrupt with a different
-trigger-type) and we end up setting IORESOURCE_DISABLED in the flags.
-
-The setting of IORESOURCE_DISABLED causes platform_get_irq() to call
-acpi_irq_get() which is not implemented on x86 and returns -EINVAL.
-resulting in the following in dmesg:
-
-amd_gpio AMDI0030:00: Failed to get gpio IRQ: -22
-amd_gpio: probe of AMDI0030:00 failed with error -22
-
-The SMB0001 is a "virtual" device in the sense that the only way the OS
-interacts with it is through calling a couple of methods to do SMBus
-transfers. As such it is weird that it has IO and IRQ resources at all,
-because the driver for it is not expected to ever access the hardware
-directly.
-
-The Linux driver for the SMB0001 device directly binds to the acpi_device
-through the acpi_bus, so we do not need to instantiate a platform_device
-for this ACPI device. This commit adds the SMB0001 HID to the
-forbidden_id_list, avoiding the instantiating of a platform_device for it.
-Not instantiating a platform_device means we will no longer call
-acpi_dev_get_irqresource() for the legacy IRQ resource fixing the probe of
-the AMDI0030 device failing.
-
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1644013
-BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=198715
-BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=199523
-Reported-by: Lukas Kahnert <openproggerfreak@gmail.com>
-Tested-by: Marc <suaefar@googlemail.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/acpi/acpi_platform.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c
-index eaa60c94205a..1f32caa87686 100644
---- a/drivers/acpi/acpi_platform.c
-+++ b/drivers/acpi/acpi_platform.c
-@@ -30,6 +30,7 @@ static const struct acpi_device_id forbidden_id_list[] = {
- {"PNP0200", 0}, /* AT DMA Controller */
- {"ACPI0009", 0}, /* IOxAPIC */
- {"ACPI000A", 0}, /* IOAPIC */
-+ {"SMB0001", 0}, /* ACPI SMBUS virtual device */
- {"", 0},
- };
-
---
-2.19.1
-