Re: [PATCH] hwmon: (dell-smm) Use one DMI match for all XPS models

From: Guenter Roeck
Date: Thu Apr 02 2020 - 02:15:41 EST


On 4/1/20 9:02 PM, Thomas Hebb wrote:
> Currently, each new XPS has to be added manually for module autoloading
> to work. Since fan multiplier autodetection should work fine on all XPS
> models, just match them all with one block like is done for Precision
> and Studio.
>
> The only match we replace that doesn't already use autodetection is
> "XPS13" which, according to Google, only matches the XPS 13 9333. (All
> other XPS 13 models have "XPS" as its own word, surrounded by spaces.)
> According to the thread at [1], autodetection works for the XPS 13 9333,
> meaning this shouldn't regress it. I do not own one to confirm with,
> though.
>
> Tested on an XPS 13 9350 and confirmed the module now autoloads and
> reports reasonable-looking data. I am using BIOS 1.12.2 and do not see
> any freezes when querying fan speed.
>
> [1] https://lore.kernel.org/patchwork/patch/525367/
>
> Signed-off-by: Thomas Hebb <tommyhebb@xxxxxxxxx>
> ---
>
> drivers/hwmon/dell-smm-hwmon.c | 19 ++-----------------
> 1 file changed, 2 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
> index d4c83009d625..c1af4c801dd8 100644
> --- a/drivers/hwmon/dell-smm-hwmon.c
> +++ b/drivers/hwmon/dell-smm-hwmon.c
> @@ -1087,14 +1087,6 @@ static const struct dmi_system_id i8k_dmi_table[] __initconst = {
> },
> .driver_data = (void *)&i8k_config_data[DELL_STUDIO],
> },
> - {
> - .ident = "Dell XPS 13",
> - .matches = {
> - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> - DMI_MATCH(DMI_PRODUCT_NAME, "XPS13"),
> - },
> - .driver_data = (void *)&i8k_config_data[DELL_XPS],

So .driver_data is no longer needed for xps 13 models ? Really ?

Guenter

> - },
> {
> .ident = "Dell XPS M140",
> .matches = {
> @@ -1104,17 +1096,10 @@ static const struct dmi_system_id i8k_dmi_table[] __initconst = {
> .driver_data = (void *)&i8k_config_data[DELL_XPS],
> },
> {
> - .ident = "Dell XPS 15 9560",
> - .matches = {
> - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> - DMI_MATCH(DMI_PRODUCT_NAME, "XPS 15 9560"),
> - },
> - },
> - {
> - .ident = "Dell XPS 15 9570",
> + .ident = "Dell XPS",
> .matches = {
> DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> - DMI_MATCH(DMI_PRODUCT_NAME, "XPS 15 9570"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "XPS"),

Quite frankly, I'd want to have this tested on many more models.
I don't really want to deal with the fallout if it doesn't work
on all xps a3 and xps 15 systems, especially since Dell doesn't
support the BIOS interface used by this driver.

Guenter

> },
> },
> { }
>