linux/drivers/platform/x86/intel
Gwendal Grignou ce64c26ba8 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:07:40 +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: release cpus_read_lock() 2023-10-04 11:52:44 +02:00
int1092 platform/x86: intel: int1092: intel_sar: Convert to platform remove callback returning void 2023-03-07 12:20:31 +01:00
int3472 platform/x86: int3472/discrete: set variable skl_int3472_regulator_second_sensor storage-class-specifier to static 2023-07-10 15:26:07 +02:00
pmc platform/x86/intel/pmc: Move GBE LTR ignore to suspend callback 2024-01-05 15:19:42 +01:00
pmt Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
speed_select_if Perf events changes for v6.6: 2023-08-28 16:35:01 -07:00
telemetry platform/x86: intel_telemetry: Fix kernel doc descriptions 2023-12-20 17:01:58 +01:00
uncore-frequency platform/x86: intel-uncore-freq: Fix types in sysfs callbacks 2024-01-31 16:19:07 -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: Convert to platform remove callback returning void 2023-03-07 12:20:21 +01:00
bytcrc_pwrsrc.c platform/x86: Add intel_bytcrc_pwrsrc driver 2023-03-16 14:42:30 +01:00
chtdc_ti_pwrbtn.c platform/x86: intel: chtdc_ti_pwrbtn: Convert to platform remove callback returning void 2023-03-07 12:20:23 +01:00
chtwc_int33fe.c platform/x86: intel: chtwc_int33fe: Convert to platform remove callback returning void 2023-03-07 12:20:25 +01: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-07-25 15:30:33 +02:00
int0002_vgpio.c platform/x86: intel: int0002_vgpio: Convert to platform remove callback returning void 2023-03-07 12:20:29 +01:00
ishtp_eclite.c HID: intel-ish-hid: fix module device-id handling 2021-11-11 22:45:40 +01:00
Kconfig platform/x86: Add intel_bytcrc_pwrsrc driver 2023-03-16 14:42:30 +01:00
Makefile platform/x86: Add intel_bytcrc_pwrsrc driver 2023-03-16 14:42:30 +01:00
mrfld_pwrbtn.c platform/x86: intel: mrfld_pwrbtn: Convert to platform remove callback returning void 2023-03-07 12:20:35 +01:00
oaktrail.c platform/x86: intel: oaktrail: Drop empty platform remove function 2023-02-02 22:48:20 +01:00
punit_ipc.c platform/x86: intel: punit_ipc: Drop empty platform remove function 2023-02-02 22:48:20 +01:00
rst.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
sdsi.c platform/x86/intel/sdsi: Change mailbox timeout 2023-04-17 12:12:29 +02:00
smartconnect.c platform/x86: intel-smartconnect: Move to intel sub-directory 2021-08-20 20:11:12 +02:00
tpmi.c platform/x86/intel/tpmi: Change vsec offset to u64 2024-04-03 15:28:31 +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:07:40 +02:00
vsec.c platform/x86/intel/vsec: Fix xa_alloc memory leak 2024-01-25 15:35:14 -08:00
vsec.h platform/x86/intel/vsec: Fix xa_alloc memory leak 2024-01-25 15:35:14 -08:00