Commit fd2d53c3 authored by Armin Wolf's avatar Armin Wolf Committed by Guenter Roeck
Browse files

hwmon: (sch56xx-common) Add DMI override table



Some devices like the Fujitsu Celsius W380 do contain
a working sch56xx hardware monitoring device, but do
not contain the necessary DMI onboard device.

Do not check for the presence of an suitable onboard device
on these machines. The list of affected machines was created
using data collected by the Linux Hardware Project.

Tested on a Fujitsu Esprimo P720, but sadly not on a affected
machine.

Fixes: 393935ba (hwmon: (sch56xx-common) Add automatic module loading on supported devices)
Signed-off-by: default avatarArmin Wolf <W_Armin@gmx.de>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220604220200.2567-1-W_Armin@gmx.de


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 39397ba8
Loading
Loading
Loading
Loading
+34 −10
Original line number Diff line number Diff line
@@ -523,6 +523,28 @@ static int __init sch56xx_device_add(int address, const char *name)
	return PTR_ERR_OR_ZERO(sch56xx_pdev);
}

static const struct dmi_system_id sch56xx_dmi_override_table[] __initconst = {
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
			DMI_MATCH(DMI_PRODUCT_NAME, "CELSIUS W380"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
			DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO P710"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
			DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO E9900"),
		},
	},
	{ }
};

/* For autoloading only */
static const struct dmi_system_id sch56xx_dmi_table[] __initconst = {
	{
@@ -543,6 +565,7 @@ static int __init sch56xx_init(void)
		if (!dmi_check_system(sch56xx_dmi_table))
			return -ENODEV;

		if (!dmi_check_system(sch56xx_dmi_override_table)) {
			/*
			 * Some machines like the Esprimo P720 and Esprimo C700 have
			 * onboard devices named " Antiope"/" Theseus" instead of
@@ -554,6 +577,7 @@ static int __init sch56xx_init(void)
			    !dmi_find_device(DMI_DEV_TYPE_OTHER, " Theseus", NULL))
				return -ENODEV;
		}
	}

	/*
	 * Some devices like the Esprimo C700 have both onboard devices,