diff mbox series

platform: x86: ideapad-laptop: Add allow_v4_dytc module parameter

Message ID 20220623115914.103001-1-hdegoede@redhat.com (mailing list archive)
State Accepted, archived
Headers show
Series platform: x86: ideapad-laptop: Add allow_v4_dytc module parameter | expand

Commit Message

Hans de Goede June 23, 2022, 11:59 a.m. UTC
Add an allow_v4_dytc module parameter to allow users to easily test if
DYTC version 4 platform-profiles work on their laptop.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=213297
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/platform/x86/ideapad-laptop.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

Comments

Hans de Goede June 27, 2022, 2:13 p.m. UTC | #1
Hi,

On 6/23/22 13:59, Hans de Goede wrote:
> Add an allow_v4_dytc module parameter to allow users to easily test if
> DYTC version 4 platform-profiles work on their laptop.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=213297
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

I've added this patch to my review-hans branch now.

Regards,

Hans


> ---
>  drivers/platform/x86/ideapad-laptop.c | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index 3ccb7b71dfb1..71f4b59eed4b 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -152,6 +152,10 @@ static bool no_bt_rfkill;
>  module_param(no_bt_rfkill, bool, 0444);
>  MODULE_PARM_DESC(no_bt_rfkill, "No rfkill for bluetooth.");
>  
> +static bool allow_v4_dytc;
> +module_param(allow_v4_dytc, bool, 0444);
> +MODULE_PARM_DESC(allow_v4_dytc, "Enable DYTC version 4 platform-profile support.");
> +
>  /*
>   * ACPI Helpers
>   */
> @@ -901,13 +905,16 @@ static int ideapad_dytc_profile_init(struct ideapad_private *priv)
>  
>  	dytc_version = (output >> DYTC_QUERY_REV_BIT) & 0xF;
>  
> -	if (dytc_version < 5) {
> -		if (dytc_version < 4 || !dmi_check_system(ideapad_dytc_v4_allow_table)) {
> -			dev_info(&priv->platform_device->dev,
> -				 "DYTC_VERSION is less than 4 or is not allowed: %d\n",
> -				 dytc_version);
> -			return -ENODEV;
> -		}
> +	if (dytc_version < 4) {
> +		dev_info(&priv->platform_device->dev, "DYTC_VERSION < 4 is not supported\n");
> +		return -ENODEV;
> +	}
> +
> +	if (dytc_version < 5 &&
> +	    !(allow_v4_dytc || dmi_check_system(ideapad_dytc_v4_allow_table))) {
> +		dev_info(&priv->platform_device->dev,
> +			 "DYTC_VERSION 4 support may not work. Pass ideapad_laptop.allow_v4_dytc=Y on the kernel commandline to enable\n");
> +		return -ENODEV;
>  	}
>  
>  	priv->dytc = kzalloc(sizeof(*priv->dytc), GFP_KERNEL);
diff mbox series

Patch

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 3ccb7b71dfb1..71f4b59eed4b 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -152,6 +152,10 @@  static bool no_bt_rfkill;
 module_param(no_bt_rfkill, bool, 0444);
 MODULE_PARM_DESC(no_bt_rfkill, "No rfkill for bluetooth.");
 
+static bool allow_v4_dytc;
+module_param(allow_v4_dytc, bool, 0444);
+MODULE_PARM_DESC(allow_v4_dytc, "Enable DYTC version 4 platform-profile support.");
+
 /*
  * ACPI Helpers
  */
@@ -901,13 +905,16 @@  static int ideapad_dytc_profile_init(struct ideapad_private *priv)
 
 	dytc_version = (output >> DYTC_QUERY_REV_BIT) & 0xF;
 
-	if (dytc_version < 5) {
-		if (dytc_version < 4 || !dmi_check_system(ideapad_dytc_v4_allow_table)) {
-			dev_info(&priv->platform_device->dev,
-				 "DYTC_VERSION is less than 4 or is not allowed: %d\n",
-				 dytc_version);
-			return -ENODEV;
-		}
+	if (dytc_version < 4) {
+		dev_info(&priv->platform_device->dev, "DYTC_VERSION < 4 is not supported\n");
+		return -ENODEV;
+	}
+
+	if (dytc_version < 5 &&
+	    !(allow_v4_dytc || dmi_check_system(ideapad_dytc_v4_allow_table))) {
+		dev_info(&priv->platform_device->dev,
+			 "DYTC_VERSION 4 support may not work. Pass ideapad_laptop.allow_v4_dytc=Y on the kernel commandline to enable\n");
+		return -ENODEV;
 	}
 
 	priv->dytc = kzalloc(sizeof(*priv->dytc), GFP_KERNEL);