linux/drivers/platform/x86/intel
Gwendal Grignou 00e34ff1ce platform/x86: intel-vbtn: Update tablet mode switch at end of probe
[ Upstream commit 434e5781d8 ]

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: 26173179fa ("platform/x86: intel-vbtn: Eval VBDL after registering our notifier")
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20240329143206.2977734-3-gwendal@chromium.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-04-13 13:05:26 +02:00
..
atomisp2 platform/x86: intel_atomisp2_led: Also turn off the always-on camera LED on the Asus T100TAF 2022-07-10 19:37:19 +02:00
ifs platform/x86/intel/ifs: Annotate work queue on stack so object debug does not complain 2023-05-30 14:03:17 +01:00
int1092 platform/x86: int1092: Fix non sequential device mode handling 2021-10-11 16:38:32 +02:00
int3472 platform/x86: int3472: Add GPIOs to Surface Go 3 Board data 2023-03-30 12:49:19 +02:00
pmc platform/x86/intel/pmc: Alder Lake PCH slp_s0_residency fix 2023-04-06 12:10:46 +02:00
pmt platform/x86/intel/pmt: Sapphire Rapids PMT errata fix 2022-11-07 12:33:49 +01:00
speed_select_if platform/x86: ISST: Remove 8 socket limit 2023-05-30 14:03:22 +01:00
telemetry platform/x86: intel_telemetry: Fix kernel doc descriptions 2023-12-20 17:00:23 +01:00
uncore-frequency platform/x86: intel-uncore-freq: Fix types in sysfs callbacks 2024-01-31 16:17:08 -08:00
wmi platform/x86/intel/wmi: thunderbolt: Use dev_groups callback 2022-09-27 16:01:44 +02:00
bxtwc_tmu.c platform/x86: intel_bxtwc_tmu: Move to intel sub-directory 2021-08-20 20:00:02 +02:00
chtdc_ti_pwrbtn.c platform/x86: intel_chtdc_ti_pwrbtn: Move to intel sub-directory 2021-08-20 20:00:02 +02:00
chtwc_int33fe.c platform/x86: intel_cht_int33fe: Fix comment according to the code flow 2022-09-01 14:50:09 +02:00
crystal_cove_charger.c platform/x86: intel_crystal_cove_charger: Fix IRQ masking / unmasking 2022-01-24 10:41:46 +01:00
hid.c platform/x86/intel/hid: Add HP Dragonfly G2 to VGBS DMI quirks 2023-09-13 09:42:22 +02:00
int0002_vgpio.c platform/x86: intel_int0002_vgpio: Use generic_handle_irq_safe() 2022-09-19 15:08:38 +02:00
ishtp_eclite.c HID: intel-ish-hid: fix module device-id handling 2021-11-11 22:45:40 +01:00
Kconfig platform/x86: p2sb: Move out of X86_PLATFORM_DEVICES dependency 2022-08-01 16:26:38 +02:00
Makefile platform/x86: p2sb: Move out of X86_PLATFORM_DEVICES dependency 2022-08-01 16:26:38 +02:00
mrfld_pwrbtn.c platform/x86: intel_mrfld_pwrbtn: Move to intel sub-directory 2021-08-20 20:00:02 +02:00
oaktrail.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
punit_ipc.c platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR() 2021-09-13 10:36:52 +02:00
rst.c platform/x86: intel-rst: Move to intel sub-directory 2021-08-20 20:09:43 +02:00
sdsi.c platform/x86/intel/sdsi: Fix bug in multi packet reads 2022-04-27 16:50:25 +02:00
smartconnect.c platform/x86: intel-smartconnect: Move to intel sub-directory 2021-08-20 20:11:12 +02:00
turbo_max_3.c platform/x86: intel_turbo_max_3: Move to intel sub-directory 2021-08-20 20:11:22 +02:00
vbtn.c platform/x86: intel-vbtn: Update tablet mode switch at end of probe 2024-04-13 13:05:26 +02:00
vsec.c platform/x86/intel/vsec: Fix xa_alloc memory leak 2024-01-25 15:27:20 -08:00
vsec.h platform/x86/intel/vsec: Fix xa_alloc memory leak 2024-01-25 15:27:20 -08:00