From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Hans de Goede <hdegoede@redhat.com>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Sasha Levin <sashal@kernel.org>,
rafael@kernel.org, mario.limonciello@amd.com,
andriy.shevchenko@linux.intel.com, mail@mariushoch.de,
linux-acpi@vger.kernel.org
Subject: [PATCH AUTOSEL 6.4 04/12] ACPI: x86: Add ACPI_QUIRK_UART1_SKIP for Lenovo Yoga Book yb1-x90f/l
Date: Sun, 2 Jul 2023 15:50:49 -0400 [thread overview]
Message-ID: <20230702195057.1787686-4-sashal@kernel.org> (raw)
In-Reply-To: <20230702195057.1787686-1-sashal@kernel.org>
From: Hans de Goede <hdegoede@redhat.com>
[ Upstream commit f91280f35895d6dcb53f504968fafd1da0b00397 ]
The Lenovo Yoga Book yb1-x90f/l 2-in-1 which ships with Android as
Factory OS has (another) bug in its DSDT where the UART resource for
the BTH0 ACPI device contains "\\_SB.PCIO.URT1" as path to the UART.
Note that is with a letter 'O' instead of the number '0' which is wrong.
This causes Linux to instantiate a standard /dev/ttyS? device for
the UART instead of a /sys/bus/serial device, which in turn causes
bluetooth to not work.
Similar DSDT bugs have been encountered before and to work around those
the acpi_quirk_skip_serdev_enumeration() helper exists.
Previous devices had the broken resource pointing to the first UART, while
the BT HCI was on the second UART, which ACPI_QUIRK_UART1_TTY_UART2_SKIP
deals with. Add a new ACPI_QUIRK_UART1_SKIP quirk for skipping enumeration
of UART1 instead for the Yoga Book case and add this quirk to the
existing DMI quirk table entry for the yb1-x90f/l .
This leaves the UART1 controller unbound allowing the x86-android-tablets
module to manually instantiate a serdev for it fixing bluetooth.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/acpi/x86/utils.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index 4cfee2da06756..c2b925f8cd4e4 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -259,10 +259,11 @@ bool force_storage_d3(void)
* drivers/platform/x86/x86-android-tablets.c kernel module.
*/
#define ACPI_QUIRK_SKIP_I2C_CLIENTS BIT(0)
-#define ACPI_QUIRK_UART1_TTY_UART2_SKIP BIT(1)
-#define ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY BIT(2)
-#define ACPI_QUIRK_USE_ACPI_AC_AND_BATTERY BIT(3)
-#define ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS BIT(4)
+#define ACPI_QUIRK_UART1_SKIP BIT(1)
+#define ACPI_QUIRK_UART1_TTY_UART2_SKIP BIT(2)
+#define ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY BIT(3)
+#define ACPI_QUIRK_USE_ACPI_AC_AND_BATTERY BIT(4)
+#define ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS BIT(5)
static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
/*
@@ -319,6 +320,7 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
},
.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
+ ACPI_QUIRK_UART1_SKIP |
ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
},
@@ -449,6 +451,9 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
if (dmi_id)
quirks = (unsigned long)dmi_id->driver_data;
+ if ((quirks & ACPI_QUIRK_UART1_SKIP) && uid == 1)
+ *skip = true;
+
if (quirks & ACPI_QUIRK_UART1_TTY_UART2_SKIP) {
if (uid == 1)
return -ENODEV; /* Create tty cdev instead of serdev */
--
2.39.2
next prev parent reply other threads:[~2023-07-02 19:54 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-02 19:50 [PATCH AUTOSEL 6.4 01/12] platform/chrome: cros_ec: Report EC panic as uevent Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 02/12] ACPI: x86: Add skip i2c clients quirk for Nextbook Ares 8A Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 03/12] ACPI: button: Add lid disable DMI " Sasha Levin
2023-07-02 19:50 ` Sasha Levin [this message]
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 05/12] ACPI: video: Add backlight=native DMI quirk for Apple iMac11,3 Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 06/12] ACPI: video: Add backlight=native DMI quirk for Lenovo ThinkPad X131e (3371 AMD version) Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 07/12] arm64: cpufeature: detect FEAT_HCX Sasha Levin
2023-07-02 19:50 ` Sasha Levin
2023-07-03 11:51 ` Mark Brown
2023-07-03 11:51 ` Mark Brown
2023-07-09 14:56 ` Sasha Levin
2023-07-09 14:56 ` Sasha Levin
2023-07-09 21:13 ` Mark Brown
2023-07-09 21:13 ` Mark Brown
2023-07-10 9:44 ` Will Deacon
2023-07-10 9:44 ` Will Deacon
2023-07-10 13:31 ` Greg KH
2023-07-10 13:31 ` Greg KH
2023-07-10 13:47 ` Mark Brown
2023-07-10 13:47 ` Mark Brown
2023-07-10 14:09 ` Greg KH
2023-07-10 14:09 ` Greg KH
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 08/12] ACPI: resource: Remove "Zen" specific match and quirks Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 09/12] arm64: set __exception_irq_entry with __irq_entry as a default Sasha Levin
2023-07-02 19:50 ` Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 10/12] arm64: mm: fix VA-range sanity check Sasha Levin
2023-07-02 19:50 ` Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 11/12] drivers/perf: hisi: Add support for HiSilicon H60PA and PAv3 PMU driver Sasha Levin
2023-07-02 19:50 ` Sasha Levin
2023-07-03 10:14 ` Mark Rutland
2023-07-03 10:14 ` Mark Rutland
2023-07-21 15:13 ` Sasha Levin
2023-07-21 15:13 ` Sasha Levin
2023-07-02 19:50 ` [PATCH AUTOSEL 6.4 12/12] ACPI: video: Add backlight=native DMI quirk for Dell Studio 1569 Sasha Levin
2023-07-10 22:46 ` [PATCH AUTOSEL 6.4 01/12] platform/chrome: cros_ec: Report EC panic as uevent Brian Norris
2023-07-21 15:11 ` Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230702195057.1787686-4-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=hdegoede@redhat.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mail@mariushoch.de \
--cc=mario.limonciello@amd.com \
--cc=rafael.j.wysocki@intel.com \
--cc=rafael@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.