diff mbox series

[1/2] dell-smbios-base: Extends support to Alienware products

Message ID 20241030181244.3272-2-kuurtb@gmail.com (mailing list archive)
State Changes Requested, archived
Headers show
Series [1/2] dell-smbios-base: Extends support to Alienware products | expand

Commit Message

Kurt Borja Oct. 30, 2024, 6:12 p.m. UTC
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 adds dell-wmi and dell-smbios support to Alienware
products.

Signed-off-by: Kurt Borja <kuurtb@gmail.com>
---
 drivers/platform/x86/dell/dell-smbios-base.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Pali Rohár Oct. 30, 2024, 6:26 p.m. UTC | #1
On Wednesday 30 October 2024 15:12:45 Kurt Borja wrote:
> 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 adds dell-wmi and dell-smbios support to Alienware
> products.
> 
> Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> ---
>  drivers/platform/x86/dell/dell-smbios-base.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
> index 73e41eb69..01c72b91a 100644
> --- a/drivers/platform/x86/dell/dell-smbios-base.c
> +++ b/drivers/platform/x86/dell/dell-smbios-base.c
> @@ -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) &&

Are we sure that all devices with "Alienware" OEM string supports this SMBIOS API?

>  	    !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
>  		pr_err("Unable to run on non-Dell system\n");
>  		return -ENODEV;
> -- 
> 2.47.0
>
Kurt Borja Oct. 30, 2024, 8:01 p.m. UTC | #2
On Wed, Oct 30, 2024 at 07:26:13PM +0100, Pali Rohár wrote:
> On Wednesday 30 October 2024 15:12:45 Kurt Borja wrote:
> > 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 adds dell-wmi and dell-smbios support to Alienware
> > products.
> > 
> > Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> > ---
> >  drivers/platform/x86/dell/dell-smbios-base.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
> > index 73e41eb69..01c72b91a 100644
> > --- a/drivers/platform/x86/dell/dell-smbios-base.c
> > +++ b/drivers/platform/x86/dell/dell-smbios-base.c
> > @@ -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) &&
> 
> Are we sure that all devices with "Alienware" OEM string supports this SMBIOS API?

No, I am not sure.

However, I believe this driver is intended for general Dell SMBIOS 
implementations and automatically checks for support. I know this doesn't
necessarily extend to Alienware, so I hope some of the Dell maintainers
could shine some light on us.

I tested this on an Alienware x15 R1 and only some SMBIOS features
work, but no errors and dell-wmi-base works perfectly.

> 
> >  	    !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
> >  		pr_err("Unable to run on non-Dell system\n");
> >  		return -ENODEV;
> > -- 
> > 2.47.0
> >
Pali Rohár Oct. 30, 2024, 8:07 p.m. UTC | #3
On Wednesday 30 October 2024 17:01:11 Kurt Borja wrote:
> On Wed, Oct 30, 2024 at 07:26:13PM +0100, Pali Rohár wrote:
> > On Wednesday 30 October 2024 15:12:45 Kurt Borja wrote:
> > > 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 adds dell-wmi and dell-smbios support to Alienware
> > > products.
> > > 
> > > Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> > > ---
> > >  drivers/platform/x86/dell/dell-smbios-base.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
> > > index 73e41eb69..01c72b91a 100644
> > > --- a/drivers/platform/x86/dell/dell-smbios-base.c
> > > +++ b/drivers/platform/x86/dell/dell-smbios-base.c
> > > @@ -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) &&
> > 
> > Are we sure that all devices with "Alienware" OEM string supports this SMBIOS API?
> 
> No, I am not sure.
> 
> However, I believe this driver is intended for general Dell SMBIOS 
> implementations and automatically checks for support. I know this doesn't
> necessarily extend to Alienware, so I hope some of the Dell maintainers
> could shine some light on us.
> 
> I tested this on an Alienware x15 R1 and only some SMBIOS features
> work, but no errors and dell-wmi-base works perfectly.

This is good to know. You should write into commit message on which
platform you have tested this change. In case there would be some issues
in future, it will help to for example whitelist working machines.

I asked for this because for example dell hwmon driver has explicit list
of working and non-working devices. And on some dell some machines just
calling hwmon API cause issues...

So it is not just theoretical problem that allowing all devices from
Dell with some generic OEM string can cause issues.

> > 
> > >  	    !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
> > >  		pr_err("Unable to run on non-Dell system\n");
> > >  		return -ENODEV;
> > > -- 
> > > 2.47.0
> > >
Kurt Borja Oct. 30, 2024, 8:33 p.m. UTC | #4
On Wed, Oct 30, 2024 at 09:07:29PM +0100, Pali Rohár wrote:
> On Wednesday 30 October 2024 17:01:11 Kurt Borja wrote:
> > On Wed, Oct 30, 2024 at 07:26:13PM +0100, Pali Rohár wrote:
> > > On Wednesday 30 October 2024 15:12:45 Kurt Borja wrote:
> > > > 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 adds dell-wmi and dell-smbios support to Alienware
> > > > products.
> > > > 
> > > > Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> > > > ---
> > > >  drivers/platform/x86/dell/dell-smbios-base.c | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
> > > > index 73e41eb69..01c72b91a 100644
> > > > --- a/drivers/platform/x86/dell/dell-smbios-base.c
> > > > +++ b/drivers/platform/x86/dell/dell-smbios-base.c
> > > > @@ -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) &&
> > > 
> > > Are we sure that all devices with "Alienware" OEM string supports this SMBIOS API?
> > 
> > No, I am not sure.
> > 
> > However, I believe this driver is intended for general Dell SMBIOS 
> > implementations and automatically checks for support. I know this doesn't
> > necessarily extend to Alienware, so I hope some of the Dell maintainers
> > could shine some light on us.
> > 
> > I tested this on an Alienware x15 R1 and only some SMBIOS features
> > work, but no errors and dell-wmi-base works perfectly.
> 
> This is good to know. You should write into commit message on which
> platform you have tested this change. In case there would be some issues
> in future, it will help to for example whitelist working machines.

Perfect. I will.

> 
> I asked for this because for example dell hwmon driver has explicit list
> of working and non-working devices. And on some dell some machines just
> calling hwmon API cause issues...
> 
> So it is not just theoretical problem that allowing all devices from
> Dell with some generic OEM string can cause issues.

Yes, makes sense.

Also it is worth to mention that I checked a bunch of acpidumps of
different Dell models. I found three main ACPI implementations shared
between Dell's G-Series (which uses OEM STRING "Dell System") and 
Alienware X and M-Series. Obviously there might be some key differences I'm
ignoring, but it tells me the SMBIOS interface is probably implemented
similarily.

These three laptop series are all relatively new, this probably doesn't
apply to older Alienware devices.

Kurt

> 
> > > 
> > > >  	    !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
> > > >  		pr_err("Unable to run on non-Dell system\n");
> > > >  		return -ENODEV;
> > > > -- 
> > > > 2.47.0
> > > >
diff mbox series

Patch

diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
index 73e41eb69..01c72b91a 100644
--- a/drivers/platform/x86/dell/dell-smbios-base.c
+++ b/drivers/platform/x86/dell/dell-smbios-base.c
@@ -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;