All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Luke Jones <luke@ljones.dev>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Hans de Goede <hdegoede@redhat.com>,
	 platform-driver-x86@vger.kernel.org, mario.limonciello@amd.com
Subject: Re: [PATCH v8 1/8] platform/x86: asus-wmi: export symbols used for read/write WMI
Date: Tue, 8 Apr 2025 16:01:44 +0300 (EEST)	[thread overview]
Message-ID: <7c8f4bf6-5ef7-b228-455e-85b475733591@linux.intel.com> (raw)
In-Reply-To: <20250319065827.53478-2-luke@ljones.dev>

On Wed, 19 Mar 2025, Luke Jones wrote:

> From: "Luke D. Jones" <luke@ljones.dev>
> 
> Export symbols for read/write WMI symbols using a namespace.

reading/writing ?

I don't think it needs to be mentioned they're exported into a namespace 
(it's kind of expected new things mostly use namespaces and can be 
trivially seen from the patch itself).

> Existing functions:
> - asus_wmi_evaluate_method
> - asus_wmi_set_devstate
> New function:
> - asus_wmi_get_devstate_dsts
> 
> The new function is inteded for use with DSTS WMI method only and

intended

> avoids requiring the asus_wmi driver data to select the WMI method.
> 
> Signed-off-by: Luke D. Jones <luke@ljones.dev>
> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
>  drivers/platform/x86/asus-wmi.c            | 45 ++++++++++++++++++++--
>  include/linux/platform_data/x86/asus-wmi.h |  9 +++++
>  2 files changed, 51 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index cbc64d3a22ad..2784b8e6514e 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -389,7 +389,7 @@ int asus_wmi_evaluate_method(u32 method_id, u32 arg0, u32 arg1, u32 *retval)
>  {
>  	return asus_wmi_evaluate_method3(method_id, arg0, arg1, 0, retval);
>  }
> -EXPORT_SYMBOL_GPL(asus_wmi_evaluate_method);
> +EXPORT_SYMBOL_NS_GPL(asus_wmi_evaluate_method, "ASUS_WMI");
>  
>  static int asus_wmi_evaluate_method5(u32 method_id,
>  		u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4, u32 *retval)
> @@ -553,12 +553,51 @@ static int asus_wmi_get_devstate(struct asus_wmi *asus, u32 dev_id, u32 *retval)
>  	return 0;
>  }
>  
> -int asus_wmi_set_devstate(u32 dev_id, u32 ctrl_param,
> -				 u32 *retval)
> +
> +/**
> + * asus_wmi_get_devstate_dsts() - Get the WMI function state.
> + * @dev_id: The WMI method ID to call.
> + * @retval: A pointer to where to store the value returned from WMI.
> + *
> + * On success the return value is 0, and the retval is a valid value returned
> + * by the successful WMI function call otherwise an error is returned if the
> + * call failed, or if the WMI method ID is unsupported.

Please make return description to follow the kernel doc style guidelines.

Return: ...

Perhaps make it a bit shorter in places, e.g.,

Return: On success, %0 and @retval filled. On error, ...

Preferrably mention the errnos with %-Exx if values can be meaningfully 
discerned for different types of errors.

> + */
> +int asus_wmi_get_devstate_dsts(u32 dev_id, u32 *retval)
> +{
> +	int err;
> +
> +	err = asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, dev_id, 0, retval);
> +	if (err)
> +		return err;
> +
> +	if (*retval == ASUS_WMI_UNSUPPORTED_METHOD)
> +		return -ENODEV;
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL_NS_GPL(asus_wmi_get_devstate_dsts, "ASUS_WMI");
> +
> +/**
> + * asus_wmi_set_devstate() - Set the WMI function state.
> + * @dev_id: The WMI function to call.
> + * @ctrl_param: The argument to be used for this WMI function.
> + * @retval: A pointer to where to store the value returned from WMI.
> + *
> + * The returned WMI function state if not checked here for error as
> + * asus_wmi_set_devstate() is not called unless first paired with a call to
> + * asus_wmi_get_devstate_dsts() to check that the WMI function is supported.

Could you please rephrase this mess? :-)

...It could have been for some similar case (I don't want to spend time 
looking from the email archives to be sure), but I think I might have 
commented this particular case already once.

> + *
> + * On success the return value is 0, and the retval is a valid value returned
> + * by the successful WMI function call. An error value is returned only if the
> + * WMI function failed.
> + */
> +int asus_wmi_set_devstate(u32 dev_id, u32 ctrl_param, u32 *retval)
>  {
>  	return asus_wmi_evaluate_method(ASUS_WMI_METHODID_DEVS, dev_id,
>  					ctrl_param, retval);
>  }
> +EXPORT_SYMBOL_NS_GPL(asus_wmi_set_devstate, "ASUS_WMI");
>  
>  /* Helper for special devices with magic return codes */
>  static int asus_wmi_get_devstate_bits(struct asus_wmi *asus,
> diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
> index a32cb8865b2f..96ff25b2b51b 100644
> --- a/include/linux/platform_data/x86/asus-wmi.h
> +++ b/include/linux/platform_data/x86/asus-wmi.h
> @@ -160,6 +160,7 @@
>  #if IS_REACHABLE(CONFIG_ASUS_WMI)
>  void set_ally_mcu_hack(bool enabled);
>  void set_ally_mcu_powersave(bool enabled);
> +int asus_wmi_get_devstate_dsts(u32 dev_id, u32 *retval);
>  int asus_wmi_set_devstate(u32 dev_id, u32 ctrl_param, u32 *retval);
>  int asus_wmi_evaluate_method(u32 method_id, u32 arg0, u32 arg1, u32 *retval);
>  #else
> @@ -175,6 +176,14 @@ static inline int asus_wmi_set_devstate(u32 dev_id, u32 ctrl_param, u32 *retval)
>  {
>  	return -ENODEV;
>  }
> +static inline int asus_wmi_get_devstate_dsts(u32 dev_id, u32 *retval)
> +{
> +	return -ENODEV;
> +}
> +static inline int asus_wmi_set_devstate(u32 dev_id, u32 ctrl_param, u32 *retval)
> +{
> +	return -ENODEV;
> +}
>  static inline int asus_wmi_evaluate_method(u32 method_id, u32 arg0, u32 arg1,
>  					   u32 *retval)
>  {
> 

-- 
 i.


  reply	other threads:[~2025-04-08 13:01 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-19  6:58 [PATCH v8 0/8] platform/x86: Add asus-armoury driver Luke Jones
2025-03-19  6:58 ` [PATCH v8 1/8] platform/x86: asus-wmi: export symbols used for read/write WMI Luke Jones
2025-04-08 13:01   ` Ilpo Järvinen [this message]
2025-03-19  6:58 ` [PATCH v8 2/8] platform/x86: asus-armoury: move existing tunings to asus-armoury module Luke Jones
2025-04-08 13:46   ` Ilpo Järvinen
2025-03-19  6:58 ` [PATCH v8 3/8] platform/x86: asus-armoury: add panel_hd_mode attribute Luke Jones
2025-04-08 13:49   ` Ilpo Järvinen
2025-03-19  6:58 ` [PATCH v8 4/8] platform/x86: asus-armoury: add apu-mem control support Luke Jones
2025-04-08 14:20   ` Ilpo Järvinen
2025-03-19  6:58 ` [PATCH v8 5/8] platform/x86: asus-armoury: add core count control Luke Jones
2025-04-08 14:36   ` Ilpo Järvinen
2025-03-19  6:58 ` [PATCH v8 6/8] platform/x86: asus-armoury: add screen auto-brightness toggle Luke Jones
2025-03-20 21:46   ` Mario Limonciello
2025-04-08 14:37   ` Ilpo Järvinen
2025-03-19  6:58 ` [PATCH v8 7/8] platform/x86: asus-wmi: deprecate bios features Luke Jones
2025-04-08 14:39   ` Ilpo Järvinen
2025-03-19  6:58 ` [PATCH v8 8/8] platform/x86: asus-armoury: add ppt_* and nv_* tuning knobs Luke Jones
2025-03-20 21:45   ` Mario Limonciello
2025-04-08 16:05   ` Ilpo Järvinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7c8f4bf6-5ef7-b228-455e-85b475733591@linux.intel.com \
    --to=ilpo.jarvinen@linux.intel.com \
    --cc=hdegoede@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luke@ljones.dev \
    --cc=mario.limonciello@amd.com \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.