[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<CH4PR19MB873165A6A20AA85AC907CE5B827E2@CH4PR19MB8731.namprd19.prod.outlook.com>
Date: Tue, 8 Oct 2024 04:31:01 +0000
From: "Ksr, Prasanth" <Prasanth.Ksr@...l.com>
To: "Limonciello, Mario" <mario.limonciello@....com>,
Crag Wang
<crag0715@...il.com>,
"hdegoede@...hat.com" <hdegoede@...hat.com>,
Dell
Client Kernel <Dell.Client.Kernel@...l.com>
CC: LKML <linux-kernel@...r.kernel.org>,
"platform-driver-x86@...r.kernel.org"
<platform-driver-x86@...r.kernel.org>,
"Wang, Crag" <Crag.Wang@...l.com>
Subject: RE: [PATCH] platform/x86: dell-sysman: add support for alienware
products
> [EXTERNAL EMAIL]
Internal Use - Confidential
On 9/23/2024 01:36, Crag Wang wrote:
> Use SMBIOS Type 1 manfacturer instead OEM strings to verify product
> compatibility. Also, add Alienware products to the support scope.
> Alienware systems don't use OEM string "Dell System"? TIL.
If the system is Dell-developed, the string value is “Dell Inc.”. System management software can identify a Dell system by checking for “Dell ” as the first five characters of this string. Alienware systems should show “Alienware”.
This is according to the Dell implementation of SMBIOS.
>
> Signed-off-by: Crag Wang <crag_wang@...l.com>
> ---
> .../x86/dell/dell-wmi-sysman/sysman.c | 19 +++++++++++++++++--
> 1 file changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> index 9def7983d7d6..2f3f7e307b29 100644
> --- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> +++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> @@ -516,12 +516,27 @@ static int init_bios_attributes(int attr_type, const char *guid)
> return retval;
> }
>
> +static const struct dmi_system_id sysman_dev_table[] __initconst = {
> + {
> + .ident = "Dell Inc.",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + },
> + },
> + {
> + .ident = "Alienware",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
> + },
> + },
> + {}
> +};
> +
> static int __init sysman_init(void)
> {
> int ret = 0;
>
> - if (!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Dell System", NULL) &&
> - !dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "www.dell.com", NULL)) {
> + if (!dmi_check_system(sysman_dev_table)) {
> Would it perhaps make sense to be an && condition instead of remove the
> dmi_find_device() conditions?
Agreed on this.
> IE:
> if (!dmi_find_device() && !dmi_find_device() && !dmi_check_system())
> Then you can continue to cover anything that has been rebranded too.
> pr_err("Unable to run on non-Dell system\n");
> return -ENODEV;
> }
Powered by blists - more mailing lists