diff --git a/patches.suse/platform-x86-intel-vbtn-Update-tablet-mode-switch-at.patch b/patches.suse/platform-x86-intel-vbtn-Update-tablet-mode-switch-at.patch new file mode 100644 index 0000000..8749cc4 --- /dev/null +++ b/patches.suse/platform-x86-intel-vbtn-Update-tablet-mode-switch-at.patch @@ -0,0 +1,75 @@ +From 434e5781d8cd2d0ed512d920c6cdeba4b33a2e81 Mon Sep 17 00:00:00 2001 +From: Gwendal Grignou +Date: Fri, 29 Mar 2024 07:32:06 -0700 +Subject: [PATCH] platform/x86: intel-vbtn: Update tablet mode switch at end of probe +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 434e5781d8cd2d0ed512d920c6cdeba4b33a2e81 +Patch-mainline: v6.9-rc4 +References: git-fixes + +ACER Vivobook Flip (TP401NAS) virtual intel switch is implemented as +Follow: + + Device (VGBI) + { + Name (_HID, EisaId ("INT33D6") ... + Name (VBDS, Zero) + Method (_STA, 0, Serialized) // _STA: Status ... + Method (VBDL, 0, Serialized) + { + PB1E |= 0x20 + VBDS |= 0x40 + } + Method (VGBS, 0, Serialized) + { + Return (VBDS) /* \_SB_.PCI0.SBRG.EC0_.VGBI.VBDS */ + } + ... + } + +By default VBDS is set to 0. At boot it is set to clamshell (bit 6 set) +only after method VBDL is executed. + +Since VBDL is now evaluated in the probe routine later, after the device +is registered, the retrieved value of VBDS was still 0 ("tablet mode") +when setting up the virtual switch. + +Make sure to evaluate VGBS after VBDL, to ensure the +convertible boots in clamshell mode, the expected default. + +Fixes: 26173179fae1 ("platform/x86: intel-vbtn: Eval VBDL after registering our notifier") +Signed-off-by: Gwendal Grignou +Reviewed-by: Kuppuswamy Sathyanarayanan +Reviewed-by: Hans de Goede +Link: https://lore.kernel.org/r/20240329143206.2977734-3-gwendal@chromium.org +Reviewed-by: Ilpo Järvinen +Signed-off-by: Ilpo Järvinen +Acked-by: Takashi Iwai + +--- + drivers/platform/x86/intel-vbtn.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/platform/x86/intel-vbtn.c ++++ b/drivers/platform/x86/intel-vbtn.c +@@ -134,8 +134,6 @@ static int intel_vbtn_input_setup(struct + priv->switches_dev->id.bustype = BUS_HOST; + + if (priv->has_switches) { +- detect_tablet_mode(device); +- + ret = input_register_device(priv->switches_dev); + if (ret) + return ret; +@@ -314,6 +312,9 @@ static int intel_vbtn_probe(struct platf + if (ACPI_FAILURE(status)) + dev_err(&device->dev, "Error VBDL failed with ACPI status %d\n", status); + } ++ // Check switches after buttons since VBDL may have side effects. ++ if (has_switches) ++ detect_tablet_mode(device); + + device_init_wakeup(&device->dev, true); + /* diff --git a/series.conf b/series.conf index 687c1cf..c00e121 100644 --- a/series.conf +++ b/series.conf @@ -46287,6 +46287,7 @@ patches.suse/ata-sata_mv-Fix-PCI-device-ID-table-declaration-comp.patch patches.suse/0001-stackdepot-rename-pool_index-to-pool_index_plus_1.patch patches.suse/i2c-pxa-hide-unused-icr_bits-variable.patch + patches.suse/platform-x86-intel-vbtn-Update-tablet-mode-switch-at.patch patches.suse/iommu-vt-d-Allocate-local-memory-for-page-request-qu.patch # out-of-tree patches