From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pz2-f42.google.com (mail-pz2-f42.google.com [74.125.228.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E277952CCD4 for ; Tue, 29 Sep 2026 13:46:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790689564; cv=none; b=KTs+X2jTer3awxpj47ib8TcTW4s9vMkVhmM0Lcog7y+F+o7osu5JfRYwjiGRQTIjFIRQmixnQsDQ6HwupG5JQyaq1VH0UQhyF3INFGT4fzIO4eYPNOdt1e8f3LYVsV+hokyfvcYJoT5Q/kKDPE9T5jNLA5v5HiUEFirNbd/hmmI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790689564; c=relaxed/simple; bh=158wVZQAcw+9OTA9Vo/nx06a1or/Capia1hemsLrQXI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nys3DhiwxkQXhs9RvanX5gKgXMkFo2kFhfyT9EJG/w4BXeaClW1sh5bk/+oyAy7GSFdJgTFJFba9aNmw2B3OBor2cz7Y9EY5iB9+ThHEbxk+UHICAVbvejztYLpaC4LI08PW5Z3f8IhwnEkd6CWjXP5XIzXmKJkp6vZccTHqh5E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hvWrTw55; arc=none smtp.client-ip=74.125.228.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hvWrTw55" Received: by mail-pz2-f42.google.com with SMTP id d2e1a72fcca58-86e6d007703so1916481b3a.0 for ; Tue, 29 Sep 2026 06:46:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790689561; x=1791294361; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=vpC6Xh9c5VAU1megqyaTJIUbtlcZXDSg9JeqgNHWaag=; b=hvWrTw553EeC1dllO8M9MB3tBdnG+FhKNIE44Ns3JIOJ/J3WvHQ4ZVOo7O0pTdLc8h 2ESmZ4F0vrXZEfLiBm2X/C4FpsFhVdCgyu/EsK+YRxuV8u+vBIT5DmU1nfEBfIrybBfp F7lnOxRKnD0dh04K76MlPI/xz1+UchiqEMKRxFI3SfKCCgKijbCcS2zAZ2io+PvRH29b FX7fdFTKGoMVJT9qH1ksu6KoNzGfWvsel6t+f0z2ksRCMqYnC7T/bv7LCQeictJt7fTs YY4kN8nThQqnziXmKtWRQAM1YsiwdTxT7ZTozGnWqgF20ECqCFubI1VpeGPmQJunj352 3bEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790689561; x=1791294361; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=vpC6Xh9c5VAU1megqyaTJIUbtlcZXDSg9JeqgNHWaag=; b=Ur25h1AsrtpKDIQQHlgO39zeqeY93UMbnSswLEej9frowqwe5TejdhAakZMDH3TKf8 yxMKOWIAfi0LrpZ6GMGYQlYxc9Ge7ZZHCqYCar3CHYFnGp51dPfRPl7OWLVlEmB1VPT4 K5i/EzYPJ0uLvESOgdKRqMztTnNwWLoclIuj4Rjm/Mh+f5Si2GfTOLbhVC+ItmrBIBsG ELDLhIsQfQwtJ1B+UDuyZIP7yK6C4Nhuzi29pqmoXMkFM+EbwRGSxQQR/9hb1OyKinq9 9j4Yjdk0tOlLpgaUZGt6Wn8ivdw/eiE46zICmVtAjQQmeFMkwhSQ98D62+TBMuY1Iccg EzIQ== X-Forwarded-Encrypted: i=1; AKwUvBxKPpZGc36SnV7R53dQnFCaRpNQ1hD/EvCERGSBOFVz9o1cZFoicX2Hc1HAJk6M4C+LXRjYeY6OJd4rpX8=@vger.kernel.org X-Gm-Message-State: AFuF++lNVGyY5wpFx9+TnBGHYsTNL2difBgRIJ3T/il3BiySo+Dj/jan Ausp2ZnSWkQI40zoPeOfP6UeymjdtbJa3AtU4sMA3Og/fJHbHpwk/5yG X-Gm-Gg: AYBFou0Og2tnTvnzZvepofTkWwoZT4Be9MFnN0wa75MU8JFWObSLQMC4ilH0U3B+viw iC7FxowpsF+JHmFroKVADMxiT+7xrmP/l1DV4WPdO66jxIzNgAQmzNBEqSn2u5+utn5qPMGWFaB TJcH4OPnJ7yfBB5+HHtWqJVjy5qqtz9Yioj4+IKzlzi+EAuA0eI8Z0JA2BC90sl7tuZjWl9ul9K wPJHvQ4HZHoeW8TpJSnqWhDKphMaPNZGw98J/C82M6vQTGOQTCwA5o5IkEEJClF5zXT/jGAETu3 VsW2+oIzRZJVwzC5Irczxc8/CNHMr6Nj6L6gG9gGRbRBb1ZP0bDZBVN3jClto5pLNqi1dCiFqae UZfE4diuQ7rKm/EOXgqCR023LmoORGQiH1sRBHe/I2kJ70TXUgvJZKtfZbkyTdgueiOScPbSuJ7 8cAr41KSRH6B4ZmQvgx9G1UQpUncYjSmxgxjLmy/cyiPfK3Uwxhi77 X-Received: by 2002:a05:6a00:a90:b0:882:3e48:5e5 with SMTP id d2e1a72fcca58-8823e480e5cmr6783156b3a.29.1790689560753; Tue, 29 Sep 2026 06:46:00 -0700 (PDT) Received: from qby-nixos-laptop ([2a13:edc0:18:16f::a]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-885defd736csm919555b3a.8.2026.09.29.06.45.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Sep 2026 06:46:00 -0700 (PDT) From: Mingyou Chen To: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Hans de Goede Cc: KentoNion , platform-driver-x86@vger.kernel.org, ted eric , Armin Wolf , linux-kernel@vger.kernel.org, Chris Taraszka , Matias Civadda , =?UTF-8?q?=E9=AB=98=20=E4=BF=8A=E6=96=87?= , powerfullz , =?UTF-8?q?=E5=AD=99=20=E8=AA=89=E9=93=AD?= , =?UTF-8?q?Milo=C5=A1=20Vlku?= , Rsplwe , Bozhen Peng , Mingyou Chen Subject: [PATCH v6 4/5] platform/x86: redmi-wmi: Drop redmi-wmi driver Date: Tue, 29 Sep 2026 13:45:02 +0000 Message-ID: <20260929134503.17249-5-qby140326@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260929134503.17249-1-qby140326@gmail.com> References: <20260929134503.17249-1-qby140326@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The redmi-wmi driver is no longer needed because its functionality has been superseded by the new generic bitland platform driver. All supported Redmi laptop models are now handled properly via the updated WMI interfaces in bitland-mifs-wmi. Remove the obsolete code, Kconfig entries, and Makefile references to clean up the platform directory. Signed-off-by: Mingyou Chen --- MAINTAINERS | 6 -- drivers/platform/x86/Kconfig | 12 --- drivers/platform/x86/Makefile | 1 - drivers/platform/x86/redmi-wmi.c | 154 ------------------------------- 4 files changed, 173 deletions(-) delete mode 100644 drivers/platform/x86/redmi-wmi.c diff --git a/MAINTAINERS b/MAINTAINERS index c0b657dfe11f..cb4bd4e6ee48 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23036,12 +23036,6 @@ S: Maintained T: git https://github.com/pkshih/rtw.git F: drivers/net/wireless/realtek/rtw89/ -REDMIBOOK WMI DRIVERS -M: Gladyshev Ilya -L: platform-driver-x86@vger.kernel.org -S: Maintained -F: drivers/platform/x86/redmi-wmi.c - BITLAND LAPTOP DRIVER M: Mingyou Chen M: Gladyshev Ilya diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig index 45f15f93afa7..02e7ac00ac4f 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig @@ -90,18 +90,6 @@ config XIAOMI_WMI To compile this driver as a module, choose M here: the module will be called xiaomi-wmi. -config REDMI_WMI - tristate "Redmibook WMI key driver" - depends on ACPI_WMI - depends on INPUT - select INPUT_SPARSEKMAP - help - Say Y here if you want support for WMI-based hotkey events on - Xiaomi Redmibook devices. - - To compile this driver as a module, choose M here: the module will - be called redmi-wmi. - config GIGABYTE_WMI tristate "Gigabyte WMI temperature driver" depends on ACPI_WMI diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile index a877acd937cd..567aabdcb58a 100644 --- a/drivers/platform/x86/Makefile +++ b/drivers/platform/x86/Makefile @@ -12,7 +12,6 @@ obj-$(CONFIG_HUAWEI_WMI) += huawei-wmi.o obj-$(CONFIG_MXM_WMI) += mxm-wmi.o obj-$(CONFIG_NVIDIA_WMI_EC_BACKLIGHT) += nvidia-wmi-ec-backlight.o obj-$(CONFIG_XIAOMI_WMI) += xiaomi-wmi.o -obj-$(CONFIG_REDMI_WMI) += redmi-wmi.o obj-$(CONFIG_GIGABYTE_WMI) += gigabyte-wmi.o obj-$(CONFIG_BITLAND_MIFS_WMI) += bitland-mifs-wmi.o diff --git a/drivers/platform/x86/redmi-wmi.c b/drivers/platform/x86/redmi-wmi.c deleted file mode 100644 index cc82ef502002..000000000000 --- a/drivers/platform/x86/redmi-wmi.c +++ /dev/null @@ -1,154 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* WMI driver for Xiaomi Redmibooks */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#define WMI_REDMIBOOK_KEYBOARD_EVENT_GUID "46C93E13-EE9B-4262-8488-563BCA757FEF" - -#define AI_KEY_VALUE_MASK BIT(8) - -static const struct key_entry redmi_wmi_keymap[] = { - {KE_KEY, 0x00000201, {KEY_SELECTIVE_SCREENSHOT}}, - {KE_KEY, 0x00000301, {KEY_ALL_APPLICATIONS}}, - {KE_KEY, 0x00001b01, {KEY_CONFIG}}, - {KE_KEY, 0x00011b01, {KEY_CONFIG}}, - {KE_KEY, 0x00010101, {KEY_SWITCHVIDEOMODE}}, - {KE_KEY, 0x00001a01, {KEY_REFRESH_RATE_TOGGLE}}, - - /* AI button has code for each position */ - {KE_KEY, 0x00011801, {KEY_ASSISTANT}}, - {KE_KEY, 0x00011901, {KEY_ASSISTANT}}, - - /* Keyboard backlight: Off / Auto / Low / High (new state in byte 2) */ - {KE_KEY, 0x00000501, {KEY_KBDILLUMTOGGLE}}, - {KE_KEY, 0x00800501, {KEY_KBDILLUMTOGGLE}}, - {KE_KEY, 0x00050501, {KEY_KBDILLUMTOGGLE}}, - {KE_KEY, 0x000a0501, {KEY_KBDILLUMTOGGLE}}, - - /* Xiaomi G Command Center */ - {KE_KEY, 0x00010a01, {KEY_VENDOR}}, - - /* OEM preset power mode: 1=Balanced 2=Silent 3=Turbo 4=Full speed */ - {KE_KEY, 0x00011601, {KEY_PERFORMANCE}}, - {KE_KEY, 0x00021601, {KEY_PERFORMANCE}}, - {KE_KEY, 0x00031601, {KEY_PERFORMANCE}}, - {KE_KEY, 0x00041601, {KEY_PERFORMANCE}}, - - /* Fn Lock state: 1=on 0=off */ - {KE_KEY, 0x00000701, {KEY_FN_ESC}}, - {KE_KEY, 0x00010701, {KEY_FN_ESC}}, - - /* Fn+`/1/2/3/4 */ - {KE_KEY, 0x00011101, {KEY_F13}}, - {KE_KEY, 0x00011201, {KEY_F14}}, - {KE_KEY, 0x00011301, {KEY_F15}}, - {KE_KEY, 0x00011401, {KEY_F16}}, - {KE_KEY, 0x00011501, {KEY_F17}}, - - {KE_END} -}; - -struct redmi_wmi { - struct input_dev *input_dev; - /* Protects the key event sequence */ - struct mutex key_lock; -}; - -static int redmi_wmi_probe(struct wmi_device *wdev, const void *context) -{ - struct redmi_wmi *data; - int err; - - /* Init dev */ - data = devm_kzalloc(&wdev->dev, sizeof(*data), GFP_KERNEL); - if (!data) - return -ENOMEM; - - dev_set_drvdata(&wdev->dev, data); - - err = devm_mutex_init(&wdev->dev, &data->key_lock); - if (err) - return err; - - data->input_dev = devm_input_allocate_device(&wdev->dev); - if (!data->input_dev) - return -ENOMEM; - - data->input_dev->name = "Redmibook WMI keys"; - data->input_dev->phys = "wmi/input0"; - - err = sparse_keymap_setup(data->input_dev, redmi_wmi_keymap, NULL); - if (err) - return err; - - return input_register_device(data->input_dev); -} - -static void redmi_wmi_notify(struct wmi_device *wdev, union acpi_object *obj) -{ - struct key_entry *entry; - struct redmi_wmi *data = dev_get_drvdata(&wdev->dev); - bool autorelease = true; - u32 payload; - int value = 1; - - if (obj->type != ACPI_TYPE_BUFFER) { - dev_err(&wdev->dev, "Bad response type %u\n", obj->type); - return; - } - - if (obj->buffer.length < 32) { - dev_err(&wdev->dev, "Invalid buffer length %u\n", obj->buffer.length); - return; - } - - payload = get_unaligned_le32(obj->buffer.pointer); - entry = sparse_keymap_entry_from_scancode(data->input_dev, payload); - - if (!entry) { - dev_dbg(&wdev->dev, "Unknown WMI event with payload %u", payload); - return; - } - - /* AI key quirk */ - if (entry->keycode == KEY_ASSISTANT) { - value = !(payload & AI_KEY_VALUE_MASK); - autorelease = false; - } - - guard(mutex)(&data->key_lock); - sparse_keymap_report_entry(data->input_dev, entry, value, autorelease); -} - -static const struct wmi_device_id redmi_wmi_id_table[] = { - { WMI_REDMIBOOK_KEYBOARD_EVENT_GUID, NULL }, - { } -}; - -static struct wmi_driver redmi_wmi_driver = { - .driver = { - .name = "redmi-wmi", - .probe_type = PROBE_PREFER_ASYNCHRONOUS, - }, - .id_table = redmi_wmi_id_table, - .min_event_size = 32, - .probe = redmi_wmi_probe, - .notify = redmi_wmi_notify, - .no_singleton = true, -}; -module_wmi_driver(redmi_wmi_driver); - -MODULE_DEVICE_TABLE(wmi, redmi_wmi_id_table); -MODULE_AUTHOR("Gladyshev Ilya "); -MODULE_DESCRIPTION("Redmibook WMI driver"); -MODULE_LICENSE("GPL"); -- 2.55.0