[PATCH] platform/x86: think-lmi: Add WMI certificate thumbprint support for ThinkCenter

Mark Pearson posted 1 patch 2 months, 1 week ago
drivers/platform/x86/lenovo/think-lmi.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
[PATCH] platform/x86: think-lmi: Add WMI certificate thumbprint support for ThinkCenter
Posted by Mark Pearson 2 months, 1 week ago
The ThinkCenter team are adding WMI certificate thumbprint support.

Updating the driver to enable it. They are using the same GUID as
Thinkpad/ThinkStation.
Tested on M75q Gen 5.

Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
---
 drivers/platform/x86/lenovo/think-lmi.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/platform/x86/lenovo/think-lmi.c b/drivers/platform/x86/lenovo/think-lmi.c
index 540b472b1bf3..c45f0206b4ab 100644
--- a/drivers/platform/x86/lenovo/think-lmi.c
+++ b/drivers/platform/x86/lenovo/think-lmi.c
@@ -195,7 +195,7 @@ static const struct tlmi_cert_guids thinkpad_cert_guid = {
 };
 
 static const struct tlmi_cert_guids thinkcenter_cert_guid = {
-	.thumbprint = NULL,
+	.thumbprint = LENOVO_CERT_THUMBPRINT_GUID, /* Same GUID as TP */
 	.set_bios_setting = LENOVO_TC_SET_BIOS_SETTING_CERT_GUID,
 	.save_bios_setting = LENOVO_TC_SAVE_BIOS_SETTING_CERT_GUID,
 	.cert_to_password = LENOVO_TC_CERT_TO_PASSWORD_GUID,
@@ -709,6 +709,10 @@ static ssize_t cert_thumbprint(char *buf, const char *arg, int count)
 	if (!tlmi_priv.cert_guid->thumbprint)
 		return -EOPNOTSUPP;
 
+	/* Older ThinkCenter BIOS may not have support */
+	if (!wmi_has_guid(tlmi_priv.cert_guid->thumbprint))
+		return -EOPNOTSUPP;
+
 	status = wmi_evaluate_method(tlmi_priv.cert_guid->thumbprint, 0, 0, &input, &output);
 	if (ACPI_FAILURE(status)) {
 		kfree(output.pointer);
-- 
2.43.0
Re: [PATCH] platform/x86: think-lmi: Add WMI certificate thumbprint support for ThinkCenter
Posted by Ilpo Järvinen 1 month, 2 weeks ago
On Thu, 27 Nov 2025 15:29:48 -0500, Mark Pearson wrote:

> The ThinkCenter team are adding WMI certificate thumbprint support.
> 
> Updating the driver to enable it. They are using the same GUID as
> Thinkpad/ThinkStation.
> Tested on M75q Gen 5.
> 
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/1] platform/x86: think-lmi: Add WMI certificate thumbprint support for ThinkCenter
      commit: 05126063605f26f9228c69b1ff232ac6e78f72ab

--
 i.
Re: [PATCH] platform/x86: think-lmi: Add WMI certificate thumbprint support for ThinkCenter
Posted by Mark Pearson 1 month, 2 weeks ago
On Thu, Nov 27, 2025, at 3:29 PM, Mark Pearson wrote:
> The ThinkCenter team are adding WMI certificate thumbprint support.
>
> Updating the driver to enable it. They are using the same GUID as
> Thinkpad/ThinkStation.
> Tested on M75q Gen 5.
>
> Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
> ---
>  drivers/platform/x86/lenovo/think-lmi.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/lenovo/think-lmi.c 
> b/drivers/platform/x86/lenovo/think-lmi.c
> index 540b472b1bf3..c45f0206b4ab 100644
> --- a/drivers/platform/x86/lenovo/think-lmi.c
> +++ b/drivers/platform/x86/lenovo/think-lmi.c
> @@ -195,7 +195,7 @@ static const struct tlmi_cert_guids 
> thinkpad_cert_guid = {
>  };
> 
>  static const struct tlmi_cert_guids thinkcenter_cert_guid = {
> -	.thumbprint = NULL,
> +	.thumbprint = LENOVO_CERT_THUMBPRINT_GUID, /* Same GUID as TP */
>  	.set_bios_setting = LENOVO_TC_SET_BIOS_SETTING_CERT_GUID,
>  	.save_bios_setting = LENOVO_TC_SAVE_BIOS_SETTING_CERT_GUID,
>  	.cert_to_password = LENOVO_TC_CERT_TO_PASSWORD_GUID,
> @@ -709,6 +709,10 @@ static ssize_t cert_thumbprint(char *buf, const 
> char *arg, int count)
>  	if (!tlmi_priv.cert_guid->thumbprint)
>  		return -EOPNOTSUPP;
> 
> +	/* Older ThinkCenter BIOS may not have support */
> +	if (!wmi_has_guid(tlmi_priv.cert_guid->thumbprint))
> +		return -EOPNOTSUPP;
> +
>  	status = wmi_evaluate_method(tlmi_priv.cert_guid->thumbprint, 0, 0, 
> &input, &output);
>  	if (ACPI_FAILURE(status)) {
>  		kfree(output.pointer);
> -- 
> 2.43.0

Would it be possible to get a review for this please? It's pretty minor and would like to get this feature available to users.

Thanks
Mark