All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Mingyou Chen <qby140326@gmail.com>
Cc: W_Armin@gmx.de, foxido@foxido.dev,
	Hans de Goede <hansg@kernel.org>,
	 LKML <linux-kernel@vger.kernel.org>,
	nika@nikableh.moe,  platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH v1 1/4] platform/x86: redmi-wmi: Drop redmi-wmi driver
Date: Fri, 10 Jul 2026 13:24:59 +0300 (EEST)	[thread overview]
Message-ID: <6453528f-4055-2ce8-193e-a266a3ad20c8@linux.intel.com> (raw)
In-Reply-To: <20260709122337.17417-2-qby140326@gmail.com>

On Thu, 9 Jul 2026, Mingyou Chen wrote:

> 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.

Are the patches in correct order in this series? Reading the shortlog and 
changelog of patch 2 makes me question if after this patch has been 
applied something might be missing. Why you need to add event handling 
from redmi-wmi into bitland-mifs-wmi after this patch if the functionality 
is there already at this point so you can remove redmi-wmi driver first?

-- 
 i.

> Remove the obsolete code, Kconfig entries, and Makefile references
> to clean up the platform directory.
> 
> Signed-off-by: Mingyou Chen <qby140326@gmail.com>
> ---
>  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 f37a81950e25..6d9b69c1df4c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -22768,12 +22768,6 @@ S:	Maintained
>  T:	git https://github.com/pkshih/rtw.git
>  F:	drivers/net/wireless/realtek/rtw89/
>  
> -REDMIBOOK WMI DRIVERS
> -M:	Gladyshev Ilya <foxido@foxido.dev>
> -L:	platform-driver-x86@vger.kernel.org
> -S:	Maintained
> -F:	drivers/platform/x86/redmi-wmi.c
> -
>  REDPINE WIRELESS DRIVER
>  L:	linux-wireless@vger.kernel.org
>  S:	Orphan
> diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
> index b54b5212b204..036fc76f62df 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 872ac3842391..0da4876f766e 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 58898630eda6..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 <linux/acpi.h>
> -#include <linux/bits.h>
> -#include <linux/device.h>
> -#include <linux/input.h>
> -#include <linux/input/sparse-keymap.h>
> -#include <linux/module.h>
> -#include <linux/mutex.h>
> -#include <linux/unaligned.h>
> -#include <linux/wmi.h>
> -
> -#include <uapi/linux/input-event-codes.h>
> -
> -#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 */
> -	{KE_IGNORE, 0x00000501, {}},
> -	{KE_IGNORE, 0x00800501, {}},
> -	{KE_IGNORE, 0x00050501, {}},
> -	{KE_IGNORE, 0x000a0501, {}},
> -
> -	/* Xiaomi G Command Center */
> -	{KE_KEY, 0x00010a01,	{KEY_VENDOR}},
> -
> -	/* OEM preset power mode */
> -	{KE_IGNORE, 0x00011601, {}},
> -	{KE_IGNORE, 0x00021601, {}},
> -	{KE_IGNORE, 0x00031601, {}},
> -	{KE_IGNORE, 0x00041601, {}},
> -
> -	/* Fn Lock state */
> -	{KE_IGNORE, 0x00000701, {}},
> -	{KE_IGNORE, 0x00010701, {}},
> -
> -	/* 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 <foxido@foxido.dev>");
> -MODULE_DESCRIPTION("Redmibook WMI driver");
> -MODULE_LICENSE("GPL");
> 

  reply	other threads:[~2026-07-10 10:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-09 12:23 [PATCH v1 0/4] Merge redmi-wmi into bitland-mifs-wmi Mingyou Chen
2026-07-09 12:23 ` [PATCH v1 1/4] platform/x86: redmi-wmi: Drop redmi-wmi driver Mingyou Chen
2026-07-10 10:24   ` Ilpo Järvinen [this message]
2026-07-09 12:23 ` [PATCH v1 2/4] platform/x86: bitland-mifs-wmi: Merge the function of redmi-wmi into the bitland driver Mingyou Chen
2026-07-09 16:07   ` Nika Krasnova
2026-07-10  3:41     ` Mingyou Chen
2026-07-09 16:21   ` Nika Krasnova
2026-07-10 10:20   ` Ilpo Järvinen
2026-07-09 12:23 ` [PATCH v1 3/4] MAINTAINERS: Add maintainer entry of bitland-mifs-wmi driver Mingyou Chen
2026-07-10 10:25   ` Ilpo Järvinen
2026-07-09 12:23 ` [PATCH v1 4/4] platform/x86: bitland-mifs-wmi: Add Redmi mic-mute key entries Mingyou Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6453528f-4055-2ce8-193e-a266a3ad20c8@linux.intel.com \
    --to=ilpo.jarvinen@linux.intel.com \
    --cc=W_Armin@gmx.de \
    --cc=foxido@foxido.dev \
    --cc=hansg@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nika@nikableh.moe \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qby140326@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.