[PATCH RFC] platform/x86: gigabyte-wmi: remove allowlist

Thomas Weißschuh posted 1 patch 1 year, 1 month ago
There is a newer version of this series
drivers/platform/x86/gigabyte-wmi.c | 40 -------------------------------------
1 file changed, 40 deletions(-)
[PATCH RFC] platform/x86: gigabyte-wmi: remove allowlist
Posted by Thomas Weißschuh 1 year, 1 month ago
Having to maintain a per-system allowlist is burdensome and confusing
for users, drop it.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---

I propose to keep this in -next for two cycles or so to make sure it
does not break anything.
---
 drivers/platform/x86/gigabyte-wmi.c | 40 -------------------------------------
 1 file changed, 40 deletions(-)

diff --git a/drivers/platform/x86/gigabyte-wmi.c b/drivers/platform/x86/gigabyte-wmi.c
index 322cfaeda17b..b0338f043416 100644
--- a/drivers/platform/x86/gigabyte-wmi.c
+++ b/drivers/platform/x86/gigabyte-wmi.c
@@ -13,10 +13,6 @@
 #define GIGABYTE_WMI_GUID	"DEADBEEF-2001-0000-00A0-C90629100000"
 #define NUM_TEMPERATURE_SENSORS	6
 
-static bool force_load;
-module_param(force_load, bool, 0444);
-MODULE_PARM_DESC(force_load, "Force loading on unknown platform");
-
 static u8 usable_sensors_mask;
 
 enum gigabyte_wmi_commandtype {
@@ -133,46 +129,10 @@ static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev)
 	return r;
 }
 
-#define DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME(name) \
-	{ .matches = { \
-		DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."), \
-		DMI_EXACT_MATCH(DMI_BOARD_NAME, name), \
-	}}
-
-static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M DS3H-CF"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M DS3H WIFI-CF"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE AX V2"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE V2"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 GAMING X V2"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550I AORUS PRO AX"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M AORUS PRO-P"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M DS3H"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660 GAMING X DDR4"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660I AORUS PRO DDR4"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z390 I AORUS PRO WIFI-CF"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z490 AORUS ELITE AC"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 AORUS ELITE"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 AORUS ELITE WIFI"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"),
-	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z690M AORUS ELITE AX DDR4"),
-	{ }
-};
-
 static int gigabyte_wmi_probe(struct wmi_device *wdev, const void *context)
 {
 	struct device *hwmon_dev;
 
-	if (!dmi_check_system(gigabyte_wmi_known_working_platforms)) {
-		if (!force_load)
-			return -ENODEV;
-		dev_warn(&wdev->dev, "Forcing load on unknown platform");
-	}
-
 	usable_sensors_mask = gigabyte_wmi_detect_sensor_usability(wdev);
 	if (!usable_sensors_mask) {
 		dev_info(&wdev->dev, "No temperature sensors usable");

---
base-commit: 65aca32efdcb0965502d3db2f1fa33838c070952
change-id: 20230325-gigabyte-wmi-unrestrict-7244320c1996

Best regards,
-- 
Thomas Weißschuh <linux@weissschuh.net>

Re: [PATCH RFC] platform/x86: gigabyte-wmi: remove allowlist
Posted by Hans de Goede 1 year ago
Hi Thomas,

On 3/25/23 17:48, Thomas Weißschuh wrote:
> Having to maintain a per-system allowlist is burdensome and confusing
> for users, drop it.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> 
> I propose to keep this in -next for two cycles or so to make sure it
> does not break anything.

I think dropping this is a good idea (given the current experience with
the driver), but keeping the dropping of the list in -next for 2 cycles
is somewhat tricky. Normally once the final e.g. 6.3 is released I take
the pdx86/for-next branch *as-is* and use that to send a pull-req to
Linus, so that Linus gets send a hash which has been tested in linux-next
for a while before sending it to him.

Dropping this patch at that point would mean generating a new hash,
which is a bit meh. I can do that but I would prefer to just limit
testing to 1 full cycle.

Maybe you can send me a non RFC version of this patch once 6.4-rc1 is out?
Then I can add that to for-next right away and then we can get a full
cycle of -next testing that way.

Would that work for you?

Regards,

Hans



> ---
>  drivers/platform/x86/gigabyte-wmi.c | 40 -------------------------------------
>  1 file changed, 40 deletions(-)
> 
> diff --git a/drivers/platform/x86/gigabyte-wmi.c b/drivers/platform/x86/gigabyte-wmi.c
> index 322cfaeda17b..b0338f043416 100644
> --- a/drivers/platform/x86/gigabyte-wmi.c
> +++ b/drivers/platform/x86/gigabyte-wmi.c
> @@ -13,10 +13,6 @@
>  #define GIGABYTE_WMI_GUID	"DEADBEEF-2001-0000-00A0-C90629100000"
>  #define NUM_TEMPERATURE_SENSORS	6
>  
> -static bool force_load;
> -module_param(force_load, bool, 0444);
> -MODULE_PARM_DESC(force_load, "Force loading on unknown platform");
> -
>  static u8 usable_sensors_mask;
>  
>  enum gigabyte_wmi_commandtype {
> @@ -133,46 +129,10 @@ static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev)
>  	return r;
>  }
>  
> -#define DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME(name) \
> -	{ .matches = { \
> -		DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."), \
> -		DMI_EXACT_MATCH(DMI_BOARD_NAME, name), \
> -	}}
> -
> -static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M DS3H-CF"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M DS3H WIFI-CF"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE AX V2"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE V2"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 GAMING X V2"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550I AORUS PRO AX"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M AORUS PRO-P"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550M DS3H"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660 GAMING X DDR4"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B660I AORUS PRO DDR4"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z390 I AORUS PRO WIFI-CF"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z490 AORUS ELITE AC"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 AORUS ELITE"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 AORUS ELITE WIFI"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"),
> -	DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z690M AORUS ELITE AX DDR4"),
> -	{ }
> -};
> -
>  static int gigabyte_wmi_probe(struct wmi_device *wdev, const void *context)
>  {
>  	struct device *hwmon_dev;
>  
> -	if (!dmi_check_system(gigabyte_wmi_known_working_platforms)) {
> -		if (!force_load)
> -			return -ENODEV;
> -		dev_warn(&wdev->dev, "Forcing load on unknown platform");
> -	}
> -
>  	usable_sensors_mask = gigabyte_wmi_detect_sensor_usability(wdev);
>  	if (!usable_sensors_mask) {
>  		dev_info(&wdev->dev, "No temperature sensors usable");
> 
> ---
> base-commit: 65aca32efdcb0965502d3db2f1fa33838c070952
> change-id: 20230325-gigabyte-wmi-unrestrict-7244320c1996
> 
> Best regards,

Re: [PATCH RFC] platform/x86: gigabyte-wmi: remove allowlist
Posted by Thomas Weißschuh 1 year ago
On 2023-03-27 15:15:06+0200, Hans de Goede wrote:
> Hi Thomas,
> 
> On 3/25/23 17:48, Thomas Weißschuh wrote:
> > Having to maintain a per-system allowlist is burdensome and confusing
> > for users, drop it.
> > 
> > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> > ---
> > 
> > I propose to keep this in -next for two cycles or so to make sure it
> > does not break anything.
> 
> I think dropping this is a good idea (given the current experience with
> the driver), but keeping the dropping of the list in -next for 2 cycles
> is somewhat tricky. Normally once the final e.g. 6.3 is released I take
> the pdx86/for-next branch *as-is* and use that to send a pull-req to
> Linus, so that Linus gets send a hash which has been tested in linux-next
> for a while before sending it to him.
> 
> Dropping this patch at that point would mean generating a new hash,
> which is a bit meh. I can do that but I would prefer to just limit
> testing to 1 full cycle.
> 
> Maybe you can send me a non RFC version of this patch once 6.4-rc1 is out?
> Then I can add that to for-next right away and then we can get a full
> cycle of -next testing that way.
> 
> Would that work for you?

Absolutely, will do.

Thanks,
Thomas