public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models
@ 2024-06-06 23:35 Armin Wolf
  2024-06-06 23:35 ` [PATCH 1/4] platform/x86: wireless-hotkey: Add support for LG Airplane Button Armin Wolf
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Armin Wolf @ 2024-06-06 23:35 UTC (permalink / raw)
  To: matan, agathe; +Cc: hdegoede, ilpo.jarvinen, platform-driver-x86, linux-kernel

A user complained that the lg-laptop driver does not work on 2024
models like the LG Gram 16Z90S-G.AD7BF. The underlying reason turned
out to be that the ACPI methods used by this driver where not mapped
under \XINI, but instead under \_SB.XINI. Those ACPI methods are
associated with the LGEX0820 ACPI device, which was not used by this
driver until now.

The first three patches move the airplane mode hotkey handling out
of lg-laptop and into the wireless-hotkey driver. This necessary
because the airplane mode hotkey is handled by a different ACPI
device (LGEX0815).

The last patch finally fixes the underlying issue and uses the
LGEX0820 ACPI device to find theWMAB/WMBB ACPI methods.

The modified drivers where tested by the user which created the
bug report and appear to work without issues.

Armin Wolf (4):
  platform/x86: wireless-hotkey: Add support for LG Airplane Button
  platform/x86: lg-laptop: Remove LGEX0815 hotkey handling
  platform/x86: lg-laptop: Change ACPI device id
  platform/x86: lg-laptop: Use ACPI device handle when evaluating
    WMAB/WMBB

 drivers/platform/x86/lg-laptop.c       | 89 ++++++++++----------------
 drivers/platform/x86/wireless-hotkey.c |  2 +
 2 files changed, 36 insertions(+), 55 deletions(-)

--
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] platform/x86: wireless-hotkey: Add support for LG Airplane Button
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
@ 2024-06-06 23:35 ` Armin Wolf
  2024-06-06 23:35 ` [PATCH 2/4] platform/x86: lg-laptop: Remove LGEX0815 hotkey handling Armin Wolf
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Armin Wolf @ 2024-06-06 23:35 UTC (permalink / raw)
  To: matan, agathe; +Cc: hdegoede, ilpo.jarvinen, platform-driver-x86, linux-kernel

The LGEX0815 ACPI device is used by the "LG Airplane Mode Button"
Windows driver for handling rfkill requests. When the ACPI device
receives an 0x80 ACPI notification, an rfkill event is to be
send to userspace.

Add support for the LGEX0815 ACPI device to the driver.

Tested-by: Agathe Boutmy <agathe@boutmy.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/wireless-hotkey.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/platform/x86/wireless-hotkey.c b/drivers/platform/x86/wireless-hotkey.c
index e95cdbbfb708..ab46164cbe13 100644
--- a/drivers/platform/x86/wireless-hotkey.c
+++ b/drivers/platform/x86/wireless-hotkey.c
@@ -19,6 +19,7 @@ MODULE_AUTHOR("Alex Hung");
 MODULE_ALIAS("acpi*:HPQ6001:*");
 MODULE_ALIAS("acpi*:WSTADEF:*");
 MODULE_ALIAS("acpi*:AMDI0051:*");
+MODULE_ALIAS("acpi*:LGEX0815:*");

 struct wl_button {
 	struct input_dev *input_dev;
@@ -29,6 +30,7 @@ static const struct acpi_device_id wl_ids[] = {
 	{"HPQ6001", 0},
 	{"WSTADEF", 0},
 	{"AMDI0051", 0},
+	{"LGEX0815", 0},
 	{"", 0},
 };

--
2.39.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] platform/x86: lg-laptop: Remove LGEX0815 hotkey handling
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
  2024-06-06 23:35 ` [PATCH 1/4] platform/x86: wireless-hotkey: Add support for LG Airplane Button Armin Wolf
@ 2024-06-06 23:35 ` Armin Wolf
  2024-06-06 23:35 ` [PATCH 3/4] platform/x86: lg-laptop: Change ACPI device id Armin Wolf
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Armin Wolf @ 2024-06-06 23:35 UTC (permalink / raw)
  To: matan, agathe; +Cc: hdegoede, ilpo.jarvinen, platform-driver-x86, linux-kernel

The rfkill hotkey handling is already provided by the wireless-hotkey
driver. Remove the now unnecessary rfkill hotkey handling to avoid
duplicating functionality.

The ACPI notify handler still prints debugging information when
receiving ACPI notifications to aid in reverse-engineering.

Tested-by: Agathe Boutmy <agathe@boutmy.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/lg-laptop.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c
index d0fee5d375d7..ea83630106e8 100644
--- a/drivers/platform/x86/lg-laptop.c
+++ b/drivers/platform/x86/lg-laptop.c
@@ -84,7 +84,6 @@ static const struct key_entry wmi_keymap[] = {
 					  * this key both sends an event and
 					  * changes backlight level.
 					  */
-	{KE_KEY, 0x80, {KEY_RFKILL} },
 	{KE_END, 0}
 };

@@ -272,14 +271,7 @@ static void wmi_input_setup(void)

 static void acpi_notify(struct acpi_device *device, u32 event)
 {
-	struct key_entry *key;
-
 	acpi_handle_debug(device->handle, "notify: %d\n", event);
-	if (inited & INIT_SPARSE_KEYMAP) {
-		key = sparse_keymap_entry_from_scancode(wmi_input_dev, 0x80);
-		if (key && key->type == KE_KEY)
-			sparse_keymap_report_entry(wmi_input_dev, key, 1, true);
-	}
 }

 static ssize_t fan_mode_store(struct device *dev,
--
2.39.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] platform/x86: lg-laptop: Change ACPI device id
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
  2024-06-06 23:35 ` [PATCH 1/4] platform/x86: wireless-hotkey: Add support for LG Airplane Button Armin Wolf
  2024-06-06 23:35 ` [PATCH 2/4] platform/x86: lg-laptop: Remove LGEX0815 hotkey handling Armin Wolf
@ 2024-06-06 23:35 ` Armin Wolf
  2024-06-06 23:35 ` [PATCH 4/4] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB Armin Wolf
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Armin Wolf @ 2024-06-06 23:35 UTC (permalink / raw)
  To: matan, agathe; +Cc: hdegoede, ilpo.jarvinen, platform-driver-x86, linux-kernel

The LGEX0815 ACPI device id is used for handling hotkey events, but
this functionality is already handled by the wireless-hotkey driver.

The LGEX0820 ACPI device id however is used to manage various
platform features using the WMAB/WMBB ACPI methods. Use this ACPI
device id to avoid blocking the wireless-hotkey driver from probing.

Tested-by: Agathe Boutmy <agathe@boutmy.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/lg-laptop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c
index ea83630106e8..db8a2f79bf0a 100644
--- a/drivers/platform/x86/lg-laptop.c
+++ b/drivers/platform/x86/lg-laptop.c
@@ -768,7 +768,7 @@ static void acpi_remove(struct acpi_device *device)
 }

 static const struct acpi_device_id device_ids[] = {
-	{"LGEX0815", 0},
+	{"LGEX0820", 0},
 	{"", 0}
 };
 MODULE_DEVICE_TABLE(acpi, device_ids);
--
2.39.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
                   ` (2 preceding siblings ...)
  2024-06-06 23:35 ` [PATCH 3/4] platform/x86: lg-laptop: Change ACPI device id Armin Wolf
@ 2024-06-06 23:35 ` Armin Wolf
  2024-06-18 11:58   ` Ilpo Järvinen
  2024-06-07 11:33 ` [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Ilpo Järvinen
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 9+ messages in thread
From: Armin Wolf @ 2024-06-06 23:35 UTC (permalink / raw)
  To: matan, agathe; +Cc: hdegoede, ilpo.jarvinen, platform-driver-x86, linux-kernel

On the LG Gram 16Z90S, the WMAB and WMBB ACPI methods are not mapped
under \XINI, but instead are mapped under \_SB.XINI.

The reason for this is that the LGEX0820 ACPI device used by this
driver is mapped at \_SB.XINI, so the ACPI methods where moved as well
to appear below the LGEX0820 ACPI device.

Fix this by using the ACPI handle from the ACPI device when evaluating
both methods.

Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218901
Tested-by: Agathe Boutmy <agathe@boutmy.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/lg-laptop.c | 79 +++++++++++++-------------------
 1 file changed, 33 insertions(+), 46 deletions(-)

diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c
index db8a2f79bf0a..9c7857842caf 100644
--- a/drivers/platform/x86/lg-laptop.c
+++ b/drivers/platform/x86/lg-laptop.c
@@ -39,8 +39,6 @@ MODULE_LICENSE("GPL");
 #define WMI_METHOD_WMBB "2B4F501A-BD3C-4394-8DCF-00A7D2BC8210"
 #define WMI_EVENT_GUID  WMI_EVENT_GUID0

-#define WMAB_METHOD     "\\XINI.WMAB"
-#define WMBB_METHOD     "\\XINI.WMBB"
 #define SB_GGOV_METHOD  "\\_SB.GGOV"
 #define GOV_TLED        0x2020008
 #define WM_GET          1
@@ -74,7 +72,7 @@ static u32 inited;

 static int battery_limit_use_wmbb;
 static struct led_classdev kbd_backlight;
-static enum led_brightness get_kbd_backlight_level(void);
+static enum led_brightness get_kbd_backlight_level(struct device *dev);

 static const struct key_entry wmi_keymap[] = {
 	{KE_KEY, 0x70, {KEY_F15} },	 /* LG control panel (F1) */
@@ -127,11 +125,10 @@ static int ggov(u32 arg0)
 	return res;
 }

-static union acpi_object *lg_wmab(u32 method, u32 arg1, u32 arg2)
+static union acpi_object *lg_wmab(struct device *dev, u32 method, u32 arg1, u32 arg2)
 {
 	union acpi_object args[3];
 	acpi_status status;
-	acpi_handle handle;
 	struct acpi_object_list arg;
 	struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };

@@ -142,29 +139,22 @@ static union acpi_object *lg_wmab(u32 method, u32 arg1, u32 arg2)
 	args[2].type = ACPI_TYPE_INTEGER;
 	args[2].integer.value = arg2;

-	status = acpi_get_handle(NULL, (acpi_string) WMAB_METHOD, &handle);
-	if (ACPI_FAILURE(status)) {
-		pr_err("Cannot get handle");
-		return NULL;
-	}
-
 	arg.count = 3;
 	arg.pointer = args;

-	status = acpi_evaluate_object(handle, NULL, &arg, &buffer);
+	status = acpi_evaluate_object(ACPI_HANDLE(dev), "WMAB", &arg, &buffer);
 	if (ACPI_FAILURE(status)) {
-		acpi_handle_err(handle, "WMAB: call failed.\n");
+		dev_err(dev, "WMAB: call failed.\n");
 		return NULL;
 	}

 	return buffer.pointer;
 }

-static union acpi_object *lg_wmbb(u32 method_id, u32 arg1, u32 arg2)
+static union acpi_object *lg_wmbb(struct device *dev, u32 method_id, u32 arg1, u32 arg2)
 {
 	union acpi_object args[3];
 	acpi_status status;
-	acpi_handle handle;
 	struct acpi_object_list arg;
 	struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
 	u8 buf[32];
@@ -180,18 +170,12 @@ static union acpi_object *lg_wmbb(u32 method_id, u32 arg1, u32 arg2)
 	args[2].buffer.length = 32;
 	args[2].buffer.pointer = buf;

-	status = acpi_get_handle(NULL, (acpi_string)WMBB_METHOD, &handle);
-	if (ACPI_FAILURE(status)) {
-		pr_err("Cannot get handle");
-		return NULL;
-	}
-
 	arg.count = 3;
 	arg.pointer = args;

-	status = acpi_evaluate_object(handle, NULL, &arg, &buffer);
+	status = acpi_evaluate_object(ACPI_HANDLE(dev), "WMBB", &arg, &buffer);
 	if (ACPI_FAILURE(status)) {
-		acpi_handle_err(handle, "WMAB: call failed.\n");
+		dev_err(dev, "WMBB: call failed.\n");
 		return NULL;
 	}

@@ -222,7 +206,7 @@ static void wmi_notify(u32 value, void *context)

 		if (eventcode == 0x10000000) {
 			led_classdev_notify_brightness_hw_changed(
-				&kbd_backlight, get_kbd_backlight_level());
+				&kbd_backlight, get_kbd_backlight_level(kbd_backlight.dev->parent));
 		} else {
 			key = sparse_keymap_entry_from_scancode(
 				wmi_input_dev, eventcode);
@@ -287,7 +271,7 @@ static ssize_t fan_mode_store(struct device *dev,
 	if (ret)
 		return ret;

-	r = lg_wmab(WM_FAN_MODE, WM_GET, 0);
+	r = lg_wmab(dev, WM_FAN_MODE, WM_GET, 0);
 	if (!r)
 		return -EIO;

@@ -298,9 +282,9 @@ static ssize_t fan_mode_store(struct device *dev,

 	m = r->integer.value;
 	kfree(r);
-	r = lg_wmab(WM_FAN_MODE, WM_SET, (m & 0xffffff0f) | (value << 4));
+	r = lg_wmab(dev, WM_FAN_MODE, WM_SET, (m & 0xffffff0f) | (value << 4));
 	kfree(r);
-	r = lg_wmab(WM_FAN_MODE, WM_SET, (m & 0xfffffff0) | value);
+	r = lg_wmab(dev, WM_FAN_MODE, WM_SET, (m & 0xfffffff0) | value);
 	kfree(r);

 	return count;
@@ -312,7 +296,7 @@ static ssize_t fan_mode_show(struct device *dev,
 	unsigned int status;
 	union acpi_object *r;

-	r = lg_wmab(WM_FAN_MODE, WM_GET, 0);
+	r = lg_wmab(dev, WM_FAN_MODE, WM_GET, 0);
 	if (!r)
 		return -EIO;

@@ -339,7 +323,7 @@ static ssize_t usb_charge_store(struct device *dev,
 	if (ret)
 		return ret;

-	r = lg_wmbb(WMBB_USB_CHARGE, WM_SET, value);
+	r = lg_wmbb(dev, WMBB_USB_CHARGE, WM_SET, value);
 	if (!r)
 		return -EIO;

@@ -353,7 +337,7 @@ static ssize_t usb_charge_show(struct device *dev,
 	unsigned int status;
 	union acpi_object *r;

-	r = lg_wmbb(WMBB_USB_CHARGE, WM_GET, 0);
+	r = lg_wmbb(dev, WMBB_USB_CHARGE, WM_GET, 0);
 	if (!r)
 		return -EIO;

@@ -381,7 +365,7 @@ static ssize_t reader_mode_store(struct device *dev,
 	if (ret)
 		return ret;

-	r = lg_wmab(WM_READER_MODE, WM_SET, value);
+	r = lg_wmab(dev, WM_READER_MODE, WM_SET, value);
 	if (!r)
 		return -EIO;

@@ -395,7 +379,7 @@ static ssize_t reader_mode_show(struct device *dev,
 	unsigned int status;
 	union acpi_object *r;

-	r = lg_wmab(WM_READER_MODE, WM_GET, 0);
+	r = lg_wmab(dev, WM_READER_MODE, WM_GET, 0);
 	if (!r)
 		return -EIO;

@@ -423,7 +407,7 @@ static ssize_t fn_lock_store(struct device *dev,
 	if (ret)
 		return ret;

-	r = lg_wmab(WM_FN_LOCK, WM_SET, value);
+	r = lg_wmab(dev, WM_FN_LOCK, WM_SET, value);
 	if (!r)
 		return -EIO;

@@ -437,7 +421,7 @@ static ssize_t fn_lock_show(struct device *dev,
 	unsigned int status;
 	union acpi_object *r;

-	r = lg_wmab(WM_FN_LOCK, WM_GET, 0);
+	r = lg_wmab(dev, WM_FN_LOCK, WM_GET, 0);
 	if (!r)
 		return -EIO;

@@ -467,9 +451,9 @@ static ssize_t charge_control_end_threshold_store(struct device *dev,
 		union acpi_object *r;

 		if (battery_limit_use_wmbb)
-			r = lg_wmbb(WMBB_BATT_LIMIT, WM_SET, value);
+			r = lg_wmbb(&pf_device->dev, WMBB_BATT_LIMIT, WM_SET, value);
 		else
-			r = lg_wmab(WM_BATT_LIMIT, WM_SET, value);
+			r = lg_wmab(&pf_device->dev, WM_BATT_LIMIT, WM_SET, value);
 		if (!r)
 			return -EIO;

@@ -488,7 +472,7 @@ static ssize_t charge_control_end_threshold_show(struct device *device,
 	union acpi_object *r;

 	if (battery_limit_use_wmbb) {
-		r = lg_wmbb(WMBB_BATT_LIMIT, WM_GET, 0);
+		r = lg_wmbb(&pf_device->dev, WMBB_BATT_LIMIT, WM_GET, 0);
 		if (!r)
 			return -EIO;

@@ -499,7 +483,7 @@ static ssize_t charge_control_end_threshold_show(struct device *device,

 		status = r->buffer.pointer[0x10];
 	} else {
-		r = lg_wmab(WM_BATT_LIMIT, WM_GET, 0);
+		r = lg_wmab(&pf_device->dev, WM_BATT_LIMIT, WM_GET, 0);
 		if (!r)
 			return -EIO;

@@ -578,7 +562,7 @@ static void tpad_led_set(struct led_classdev *cdev,
 {
 	union acpi_object *r;

-	r = lg_wmab(WM_TLED, WM_SET, brightness > LED_OFF);
+	r = lg_wmab(cdev->dev->parent, WM_TLED, WM_SET, brightness > LED_OFF);
 	kfree(r);
 }

@@ -600,16 +584,16 @@ static void kbd_backlight_set(struct led_classdev *cdev,
 		val = 0;
 	if (brightness >= LED_FULL)
 		val = 0x24;
-	r = lg_wmab(WM_KEY_LIGHT, WM_SET, val);
+	r = lg_wmab(cdev->dev->parent, WM_KEY_LIGHT, WM_SET, val);
 	kfree(r);
 }

-static enum led_brightness get_kbd_backlight_level(void)
+static enum led_brightness get_kbd_backlight_level(struct device *dev)
 {
 	union acpi_object *r;
 	int val;

-	r = lg_wmab(WM_KEY_LIGHT, WM_GET, 0);
+	r = lg_wmab(dev, WM_KEY_LIGHT, WM_GET, 0);

 	if (!r)
 		return LED_OFF;
@@ -637,7 +621,7 @@ static enum led_brightness get_kbd_backlight_level(void)

 static enum led_brightness kbd_backlight_get(struct led_classdev *cdev)
 {
-	return get_kbd_backlight_level();
+	return get_kbd_backlight_level(cdev->dev->parent);
 }

 static LED_DEVICE(kbd_backlight, 255, LED_BRIGHT_HW_CHANGED);
@@ -664,6 +648,11 @@ static struct platform_driver pf_driver = {

 static int acpi_add(struct acpi_device *device)
 {
+	struct platform_device_info pdev_info = {
+		.fwnode = acpi_fwnode_handle(device),
+		.name = PLATFORM_NAME,
+		.id = PLATFORM_DEVID_NONE,
+	};
 	int ret;
 	const char *product;
 	int year = 2017;
@@ -675,9 +664,7 @@ static int acpi_add(struct acpi_device *device)
 	if (ret)
 		return ret;

-	pf_device = platform_device_register_simple(PLATFORM_NAME,
-						    PLATFORM_DEVID_NONE,
-						    NULL, 0);
+	pf_device = platform_device_register_full(&pdev_info);
 	if (IS_ERR(pf_device)) {
 		ret = PTR_ERR(pf_device);
 		pf_device = NULL;
--
2.39.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
                   ` (3 preceding siblings ...)
  2024-06-06 23:35 ` [PATCH 4/4] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB Armin Wolf
@ 2024-06-07 11:33 ` Ilpo Järvinen
  2024-06-16 18:35 ` Armin Wolf
  2024-06-24 11:29 ` Hans de Goede
  6 siblings, 0 replies; 9+ messages in thread
From: Ilpo Järvinen @ 2024-06-07 11:33 UTC (permalink / raw)
  To: Armin Wolf; +Cc: matan, agathe, Hans de Goede, platform-driver-x86, LKML

[-- Attachment #1: Type: text/plain, Size: 1263 bytes --]

On Fri, 7 Jun 2024, Armin Wolf wrote:

> A user complained that the lg-laptop driver does not work on 2024
> models like the LG Gram 16Z90S-G.AD7BF. The underlying reason turned
> out to be that the ACPI methods used by this driver where not mapped
> under \XINI, but instead under \_SB.XINI. Those ACPI methods are
> associated with the LGEX0820 ACPI device, which was not used by this
> driver until now.
> 
> The first three patches move the airplane mode hotkey handling out
> of lg-laptop and into the wireless-hotkey driver. This necessary
> because the airplane mode hotkey is handled by a different ACPI
> device (LGEX0815).
> 
> The last patch finally fixes the underlying issue and uses the
> LGEX0820 ACPI device to find theWMAB/WMBB ACPI methods.
> 
> The modified drivers where tested by the user which created the
> bug report and appear to work without issues.
> 
> Armin Wolf (4):
>   platform/x86: wireless-hotkey: Add support for LG Airplane Button
>   platform/x86: lg-laptop: Remove LGEX0815 hotkey handling
>   platform/x86: lg-laptop: Change ACPI device id
>   platform/x86: lg-laptop: Use ACPI device handle when evaluating
>     WMAB/WMBB

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>


-- 
 i.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
                   ` (4 preceding siblings ...)
  2024-06-07 11:33 ` [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Ilpo Järvinen
@ 2024-06-16 18:35 ` Armin Wolf
  2024-06-24 11:29 ` Hans de Goede
  6 siblings, 0 replies; 9+ messages in thread
From: Armin Wolf @ 2024-06-16 18:35 UTC (permalink / raw)
  To: matan, agathe; +Cc: hdegoede, ilpo.jarvinen, platform-driver-x86, linux-kernel

Am 07.06.24 um 01:35 schrieb Armin Wolf:

> A user complained that the lg-laptop driver does not work on 2024
> models like the LG Gram 16Z90S-G.AD7BF. The underlying reason turned
> out to be that the ACPI methods used by this driver where not mapped
> under \XINI, but instead under \_SB.XINI. Those ACPI methods are
> associated with the LGEX0820 ACPI device, which was not used by this
> driver until now.
>
> The first three patches move the airplane mode hotkey handling out
> of lg-laptop and into the wireless-hotkey driver. This necessary
> because the airplane mode hotkey is handled by a different ACPI
> device (LGEX0815).
>
> The last patch finally fixes the underlying issue and uses the
> LGEX0820 ACPI device to find theWMAB/WMBB ACPI methods.
>
> The modified drivers where tested by the user which created the
> bug report and appear to work without issues.

Hi,

any thought from the maintainer of the driver perhaps?

Thanks,
Armin Wolf

> Armin Wolf (4):
>    platform/x86: wireless-hotkey: Add support for LG Airplane Button
>    platform/x86: lg-laptop: Remove LGEX0815 hotkey handling
>    platform/x86: lg-laptop: Change ACPI device id
>    platform/x86: lg-laptop: Use ACPI device handle when evaluating
>      WMAB/WMBB
>
>   drivers/platform/x86/lg-laptop.c       | 89 ++++++++++----------------
>   drivers/platform/x86/wireless-hotkey.c |  2 +
>   2 files changed, 36 insertions(+), 55 deletions(-)
>
> --
> 2.39.2
>
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB
  2024-06-06 23:35 ` [PATCH 4/4] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB Armin Wolf
@ 2024-06-18 11:58   ` Ilpo Järvinen
  0 siblings, 0 replies; 9+ messages in thread
From: Ilpo Järvinen @ 2024-06-18 11:58 UTC (permalink / raw)
  To: Armin Wolf; +Cc: matan, agathe, Hans de Goede, platform-driver-x86, LKML

[-- Attachment #1: Type: text/plain, Size: 779 bytes --]

On Fri, 7 Jun 2024, Armin Wolf wrote:

> On the LG Gram 16Z90S, the WMAB and WMBB ACPI methods are not mapped
> under \XINI, but instead are mapped under \_SB.XINI.
> 
> The reason for this is that the LGEX0820 ACPI device used by this
> driver is mapped at \_SB.XINI, so the ACPI methods where moved as well
> to appear below the LGEX0820 ACPI device.
> 
> Fix this by using the ACPI handle from the ACPI device when evaluating
> both methods.
> 
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218901
> Tested-by: Agathe Boutmy <agathe@boutmy.com>
> Signed-off-by: Armin Wolf <W_Armin@gmx.de>

I remember looking this through earlier but it seems I never gave a tag 
for it...

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>


-- 
 i.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models
  2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
                   ` (5 preceding siblings ...)
  2024-06-16 18:35 ` Armin Wolf
@ 2024-06-24 11:29 ` Hans de Goede
  6 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2024-06-24 11:29 UTC (permalink / raw)
  To: Armin Wolf, matan, agathe
  Cc: ilpo.jarvinen, platform-driver-x86, linux-kernel

Hi,

On 6/7/24 1:35 AM, Armin Wolf wrote:
> A user complained that the lg-laptop driver does not work on 2024
> models like the LG Gram 16Z90S-G.AD7BF. The underlying reason turned
> out to be that the ACPI methods used by this driver where not mapped
> under \XINI, but instead under \_SB.XINI. Those ACPI methods are
> associated with the LGEX0820 ACPI device, which was not used by this
> driver until now.
> 
> The first three patches move the airplane mode hotkey handling out
> of lg-laptop and into the wireless-hotkey driver. This necessary
> because the airplane mode hotkey is handled by a different ACPI
> device (LGEX0815).
> 
> The last patch finally fixes the underlying issue and uses the
> LGEX0820 ACPI device to find theWMAB/WMBB ACPI methods.
> 
> The modified drivers where tested by the user which created the
> bug report and appear to work without issues.
> 
> Armin Wolf (4):
>   platform/x86: wireless-hotkey: Add support for LG Airplane Button
>   platform/x86: lg-laptop: Remove LGEX0815 hotkey handling
>   platform/x86: lg-laptop: Change ACPI device id
>   platform/x86: lg-laptop: Use ACPI device handle when evaluating
>     WMAB/WMBB

Thank you for your patch-series, I've applied this series to my
review-hans branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-06-24 11:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-06 23:35 [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Armin Wolf
2024-06-06 23:35 ` [PATCH 1/4] platform/x86: wireless-hotkey: Add support for LG Airplane Button Armin Wolf
2024-06-06 23:35 ` [PATCH 2/4] platform/x86: lg-laptop: Remove LGEX0815 hotkey handling Armin Wolf
2024-06-06 23:35 ` [PATCH 3/4] platform/x86: lg-laptop: Change ACPI device id Armin Wolf
2024-06-06 23:35 ` [PATCH 4/4] platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB Armin Wolf
2024-06-18 11:58   ` Ilpo Järvinen
2024-06-07 11:33 ` [PATCH 0/4] platform/x86: lg-laptop: Support 2024 models Ilpo Järvinen
2024-06-16 18:35 ` Armin Wolf
2024-06-24 11:29 ` Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox