linux-stable/drivers/platform/x86
Gwendal Grignou 96e08fb285 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>
2024-04-13 13:10:12 +02:00
..
amd platform/x86/amd/pmf: Do not use readl() for policy buffer access 2024-03-26 18:17:21 -04:00
dell Another moderately busy cycle for documentation, including: 2024-01-11 19:46:52 -08:00
hp platform/x86: hp-bioscfg: Removed needless asm-generic 2023-12-28 10:06:44 +01:00
intel platform/x86: intel-vbtn: Update tablet mode switch at end of probe 2024-04-13 13:10:12 +02:00
siemens platform/x86/siemens: simatic-ipc-batt-f7188x: Convert to platform remove callback returning void 2023-09-28 13:27:06 +03:00
x86-android-tablets platform/x86: x86-android-tablets: Fix acer_b1_750_goodix_gpios name 2024-02-20 14:35:35 +01:00
Kconfig platform-drivers-x86 for v6.7-3 2023-12-11 11:22:02 +01:00
Makefile platform/x86: Add Silicom Platform Driver 2023-12-04 13:44:05 +01:00
acer-wireless.c
acer-wmi.c platform/x86: acer-wmi: Add predator_v4 module parameter 2024-04-13 13:10:08 +02:00
acerhdf.c Thermal control updates for 6.4-rc1 2023-04-25 18:32:43 -07:00
adv_swbutton.c
amilo-rfkill.c
apple-gmux.c apple-gmux: Hard Code max brightness for MMIO gmux 2023-10-18 15:33:24 +02:00
asus-laptop.c platform/x86: asus-laptop: remove redundant braces in if statements 2023-12-02 12:27:25 +01:00
asus-nb-wmi.c platform/x86: asus-wmi: Filter Volume key presses if also reported via atkbd 2023-11-23 14:24:19 +02:00
asus-tf103c-dock.c platform/x86: asus-tf103c-dock: Switch back to use struct i2c_driver's .probe() 2023-06-13 12:32:45 +02:00
asus-wireless.c platform/x86: asus-wireless: Replace open coded acpi_match_acpi_device() 2023-10-12 16:34:09 +03:00
asus-wmi.c platform-drivers-x86 for v6.7-3 2023-12-11 11:22:02 +01:00
asus-wmi.h platform/x86: asus-wmi: Change q500a_i8042_filter() into a generic i8042-filter 2023-11-23 14:24:17 +02:00
barco-p50-gpio.c
classmate-laptop.c platform/x86: classmate: mark SPI related data as maybe unused 2023-03-16 16:10:54 +01:00
compal-laptop.c
dual_accel_detect.h
eeepc-laptop.c Fix nomenclature for USB and PCI wireless devices 2023-08-25 12:56:49 +03:00
eeepc-wmi.c
firmware_attributes_class.c
firmware_attributes_class.h
fujitsu-laptop.c
fujitsu-tablet.c
gigabyte-wmi.c platform/x86: gigabyte: constify pointers to hwmon_channel_info 2023-05-16 10:36:56 +02:00
gpd-pocket-fan.c
hdaps.c
huawei-wmi.c platform/x86: huawei-wmi: Silence ambient light sensor 2023-07-25 16:38:03 +02:00
ibm_rtl.c platform/x86: ibm_rtl: move to use bus_get_dev_root() 2023-03-17 15:29:06 +01:00
ideapad-laptop.c platform/x86: ideapad-laptop: Set max_brightness before using it 2023-11-15 14:30:51 +02:00
ideapad-laptop.h platform/x86: Add driver for Yoga Tablet Mode switch 2023-04-06 12:33:34 +02:00
inspur_platform_profile.c platform/x86: inspur-platform-profile: Add platform profile support 2023-10-27 16:14:47 +03:00
intel_ips.c platform-drivers-x86 for v6.7-6 2024-01-02 13:13:01 +01:00
intel_ips.h
intel_scu_ipc.c platform/x86: intel_scu_ipc: Fail IPC send if still busy 2023-09-18 15:15:15 +02:00
intel_scu_ipcutil.c
intel_scu_pcidrv.c platform/x86: intel_scu_pcidrv: Add back PCI ID for Medfield 2023-05-08 17:35:08 +02:00
intel_scu_pltdrv.c
intel_scu_wdt.c
lenovo-ymc.c platform/x86: lenovo-ymc: Add Lenovo Yoga 7 14ACN6 to ec_trigger_quirk_dmi_table 2023-08-21 13:08:32 +02:00
lenovo-yogabook.c pwm: Rename pwm_apply_state() to pwm_apply_might_sleep() 2023-12-20 16:07:04 +01:00
lg-laptop.c
meraki-mx100.c
mlx-platform.c Merge branch 'pdx86/platform-drivers-x86-mellanox-init' into review-ilpo 2023-10-06 17:51:21 +03:00
msi-ec.c platform-drivers-x86 for v6.7-1 2023-10-31 17:53:00 -10:00
msi-ec.h platform/x86: msi-ec: rename fn_super_swap 2023-10-09 14:30:11 +03:00
msi-laptop.c platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100 2023-07-25 16:35:58 +02:00
msi-wmi.c
mxm-wmi.c
nvidia-wmi-ec-backlight.c
p2sb.c platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR 2024-03-05 10:16:27 +01:00
panasonic-laptop.c
pcengines-apuv2.c platform/x86: pcengines-apuv2: Drop platform:pcengines-apuv2 module-alias 2023-03-16 16:14:52 +01:00
pmc_atom.c
samsung-laptop.c
samsung-q10.c
sel3350-platform.c platform/x86: sel3350-platform: Convert to platform remove callback returning void 2023-09-28 13:26:58 +03:00
serdev_helpers.h platform/x86: Add new get_serdev_controller() helper 2024-02-20 14:35:35 +01:00
serial-multi-instantiate.c ACPI: scan: Create platform device for CS35L56 2023-07-31 16:03:39 +02:00
silicom-platform.c platform/x86: silicom-platform: Fix spelling mistake "platfomr" -> "platform" 2023-12-18 14:58:50 +01:00
sony-laptop.c x86: convert to new timestamp accessors 2023-10-18 13:26:16 +02:00
system76_acpi.c platform/x86: system76: Handle new KBLED ACPI methods 2023-07-26 11:00:07 +02:00
think-lmi.c platform/x86: think-lmi: Fix password opcode ordering for workstations 2024-02-19 12:40:47 +01:00
think-lmi.h platform/x86: think-lmi: Add bulk save feature 2023-09-21 18:29:29 +02:00
thinkpad_acpi.c platform/x86: thinkpad_acpi: Only update profile if successfully converted 2024-02-20 14:35:36 +01:00
topstar-laptop.c
toshiba-wmi.c
toshiba_acpi.c platform/x86: toshiba: constify pointers to hwmon_channel_info 2023-05-16 10:36:56 +02:00
toshiba_bluetooth.c
toshiba_haps.c
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet 2024-04-13 13:10:08 +02:00
uv_sysfs.c
winmate-fm07-keys.c
wireless-hotkey.c
wmi-bmof.c platform/x86: wmi-bmof: Simplify read_bmof() 2023-07-31 16:07:41 +02:00
wmi.c platform/x86: wmi: Fix wmi_dev_probe() 2024-01-22 11:37:27 +01:00
xiaomi-wmi.c
xo1-rfkill.c
xo15-ebook.c platform/x86: xo15-ebook: Replace open coded acpi_match_acpi_device() 2023-10-12 16:33:49 +03:00