dell-smbios-base: Extends support to Alienware products
Subsystems (2)
PATCH v2 1/2 dell-smbios-base: Extends support to Alienware products
Fixes the following error:
dell_smbios: Unable to run on non-Dell system
Which is triggered after dell-wmi driver fails to initialize on Alienware systems, as it depends on dell-smbios.
This effectively extends dell-wmi, dell-smbios and dcdbas support to Alienware devices, that might share some features of the SMBIOS intereface calling interface with other Dell products.
Tested on an Alienware X15 R1.
---
v2:
- Commit message reflects Alienware devices may not necessarily support the SMBIOS interface
- Commit message now has "Tested on"
--- drivers/platform/x86/dell/dell-smbios-base.c | 1 + 1 file changed, 1 insertion(+)
drivers/platform/x86/dell/dell-smbios-base.c +1 -0
@@ -576,6 +576,7 @@ static int __init dell_smbios_init(void)int ret, wmi, smm;if (!dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Dell System" ,NULL ) && + !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Alienware" ,NULL ) && !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"www.dell.com" ,NULL )) {pr_err ("Unable to run on non-Dell system\n" );return -ENODEV ;
Signature · 1 line
2.47.0
PATCH v2 2/2 dell-wmi-base: Handle META key Lock/Unlock events
Some Alienware devices have a key that locks/unlocks the Meta key. This key triggers a WMI event that should be ignored by the kernel, as it's handled by internally the firmware.
There is no known way of changing this default behavior. The firmware would lock/unlock the Meta key, regardless of how the event is handled.
Tested on an Alienware x15 R1.
---
v2:
- Fixed entry style
- Commit message clarifies firmware behavior
- Commit message now has "Tested on"
--- drivers/platform/x86/dell/dell-wmi-base.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/platform/x86/dell/dell-wmi-base.c +6 -0
@@ -80,6 +80,12 @@ static const struct dmi_system_id dell_wmi_smbios_list[] __initconst = {static const struct key_entry dell_wmi_keymap_type_0000[] = { {KE_IGNORE ,0x003a , {KEY_CAPSLOCK } }, +/* Meta key lock */ + {KE_IGNORE ,0xe000 , {KEY_RIGHTMETA } }, + +/* Meta key unlock */ + {KE_IGNORE ,0xe001 , {KEY_RIGHTMETA } }, +/* Key code is followed by brightness level */ {KE_KEY ,0xe005 , {KEY_BRIGHTNESSDOWN } }, {KE_KEY ,0xe006 , {KEY_BRIGHTNESSUP } },
Signature · 1 line
2.47.0
Re: [PATCH v2 2/2] dell-wmi-base: Handle META key Lock/Unlock events
Quoted 7 lines · Kurt Borja
Some Alienware devices have a key that locks/unlocks the Meta key. This key triggers a WMI event that should be ignored by the kernel, as it's handled by internally the firmware.
There is no known way of changing this default behavior. The firmware would lock/unlock the Meta key, regardless of how the event is handled.
Thinking through why this event exists, it's probably so that there can be a toast message or popup or something similar in Windows to show an icon that it was changed, which doesn't currently exist in Linux.
Quoted 29 lines
Tested on an Alienware x15 R1.
Signed-off-by Kurt Borja <[email protected]>---
v2:
- Fixed entry style
- Commit message clarifies firmware behavior
- Commit message now has "Tested on"--- drivers/platform/x86/dell/dell-wmi-base.c | 6 ++++++ 1 file changed, 6 insertions(+)drivers/platform/x86/dell/dell-wmi-base.c +6
-0@@ -80,6 +80,12 @@ static const struct dmi_system_id dell_wmi_smbios_list[] __initconst = {static const struct key_entry dell_wmi_keymap_type_0000[] = { {KE_IGNORE ,0x003a , {KEY_CAPSLOCK } }, +/* Meta key lock */ + {KE_IGNORE ,0xe000 , {KEY_RIGHTMETA } }, + +/* Meta key unlock */ + {KE_IGNORE ,0xe001 , {KEY_RIGHTMETA } }, +/* Key code is followed by brightness level */ {KE_KEY ,0xe005 , {KEY_BRIGHTNESSDOWN } }, {KE_KEY ,0xe006 , {KEY_BRIGHTNESSUP } },
Re: [PATCH v2 2/2] dell-wmi-base: Handle META key Lock/Unlock events
In reply to Kurt BorjaQuoted 10 lines · On Thursday 31 October 2024 12:44:42 Kurt Borja wrote:
Some Alienware devices have a key that locks/unlocks the Meta key. This key triggers a WMI event that should be ignored by the kernel, as it's handled by internally the firmware.
There is no known way of changing this default behavior. The firmware would lock/unlock the Meta key, regardless of how the event is handled.
Tested on an Alienware x15 R1.
Signed-off-by Kurt Borja <[email protected]>
Quoted 29 lines
---
v2:
- Fixed entry style
- Commit message clarifies firmware behavior
- Commit message now has "Tested on"--- drivers/platform/x86/dell/dell-wmi-base.c | 6 ++++++ 1 file changed, 6 insertions(+)drivers/platform/x86/dell/dell-wmi-base.c +6
-0@@ -80,6 +80,12 @@ static const struct dmi_system_id dell_wmi_smbios_list[] __initconst = {static const struct key_entry dell_wmi_keymap_type_0000[] = { {KE_IGNORE ,0x003a , {KEY_CAPSLOCK } }, +/* Meta key lock */ + {KE_IGNORE ,0xe000 , {KEY_RIGHTMETA } }, + +/* Meta key unlock */ + {KE_IGNORE ,0xe001 , {KEY_RIGHTMETA } }, +/* Key code is followed by brightness level */ {KE_KEY ,0xe005 , {KEY_BRIGHTNESSDOWN } }, {KE_KEY ,0xe006 , {KEY_BRIGHTNESSUP } },Signature · 1 line
2.47.0
Quoted 7 lines · Kurt Borja
Fixes the following error:
dell_smbios: Unable to run on non-Dell systemWhich is triggered after dell-wmi driver fails to initialize on Alienware systems, as it depends on dell-smbios.
Quoted 7 lines
This effectively extends dell-wmi, dell-smbios and dcdbas support to Alienware devices, that might share some features of the SMBIOS intereface calling interface with other Dell products.
Tested on an Alienware X15 R1.
Signed-off-by Kurt Borja <[email protected]>
Quoted 14 lines
---
v2:
- Commit message reflects Alienware devices may not necessarily support the SMBIOS interface
- Commit message now has "Tested on"--- drivers/platform/x86/dell/dell-smbios-base.c | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/dell/dell-smbios-base.c +0
-0
drivers/platform/x86/dell/dell-smbios-base.c static int __init dell_smbios_init(void) · line 582
Quoted 7 lines
drivers/platform/x86/dell/dell-smbios-base.c +1
-0@@ -576,6 +576,7 @@ static int __init dell_smbios_init(void)int ret, wmi, smm;if (!dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Dell System" ,NULL ) && + !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Alienware" ,NULL ) && !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"www.dell.com" ,NULL )) {pr_err ("Unable to run on non-Dell system\n" );return -ENODEV ;
There was a really similar change that got committed recently to dell-wmi-sysman:
The lines are identical now. Is it also worth splitting out to a helper? Not sure.
Quoted 7 lines · On Thursday 31 October 2024 12:40:24 Kurt Borja wrote:
Fixes the following error:
dell_smbios: Unable to run on non-Dell systemWhich is triggered after dell-wmi driver fails to initialize on Alienware systems, as it depends on dell-smbios.
Quoted 7 lines
This effectively extends dell-wmi, dell-smbios and dcdbas support to Alienware devices, that might share some features of the SMBIOS intereface calling interface with other Dell products.
Tested on an Alienware X15 R1.
Signed-off-by Kurt Borja <[email protected]>
Quoted 24 lines
---
v2:
- Commit message reflects Alienware devices may not necessarily support the SMBIOS interface
- Commit message now has "Tested on"--- drivers/platform/x86/dell/dell-smbios-base.c | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/dell/dell-smbios-base.c +1
-0@@ -576,6 +576,7 @@ static int __init dell_smbios_init(void)int ret, wmi, smm;if (!dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Dell System" ,NULL ) && + !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Alienware" ,NULL ) && !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"www.dell.com" ,NULL )) {pr_err ("Unable to run on non-Dell system\n" );return -ENODEV ;Signature · 1 line
2.47.0
Hi,
Quoted 7 lines · Kurt Borja
Fixes the following error:
dell_smbios: Unable to run on non-Dell systemWhich is triggered after dell-wmi driver fails to initialize on Alienware systems, as it depends on dell-smbios.
Quoted 7 lines
This effectively extends dell-wmi, dell-smbios and dcdbas support to Alienware devices, that might share some features of the SMBIOS intereface calling interface with other Dell products.
Tested on an Alienware X15 R1.
Signed-off-by Kurt Borja <[email protected]>
Thank you for your patches, I've applied both patches to my review-hans branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans
Note they will show up in my review-hans branch once I've pushed my local branch there, which might take a while.
I will include these patches in my next fixes pull-req to Linus for the current kernel development cycle.
Regards,
Hans
Quoted 22 lines
---
v2:
- Commit message reflects Alienware devices may not necessarily support the SMBIOS interface
- Commit message now has "Tested on"--- drivers/platform/x86/dell/dell-smbios-base.c | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/dell/dell-smbios-base.c +1
-0@@ -576,6 +576,7 @@ static int __init dell_smbios_init(void)int ret, wmi, smm;if (!dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Dell System" ,NULL ) && + !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"Alienware" ,NULL ) && !dmi_find_device (DMI_DEV_TYPE_OEM_STRING ,"www.dell.com" ,NULL )) {pr_err ("Unable to run on non-Dell system\n" );return -ENODEV ;