Re: [PATCH v3 3/4] platform/x86/amd/hsmp: Add ACPI client support for Family 1Ah
Mario Limonciello <[email protected]>
| Newsgroups | org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/19/26 02:31, Muralidhara M K wrote: > The ACPI HSMP device (HID AMDI0097) on the Family 1Ah client platforms > (Models 80h-8Fh and E0h-E3h) describes its mailbox the same way server > platforms already do, via _CRS/_DSD, so hsmp_parse_acpi_table() and > hsmp_get_uid() need no client-specific handling. > > Client firmware does not respond to the interface version query > (HSMP_CLIENT_GET_INTERFACE_VER). Instead, query the metrics table version, > as it is the only version-related request supported by the client firmware. > Server-side behavior remains unchanged. > > Signed-off-by: Muralidhara M K <[email protected]> > --- > drivers/platform/x86/amd/hsmp/acpi.c | 2 +- > drivers/platform/x86/amd/hsmp/hsmp.c | 8 ++++++-- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/platform/x86/amd/hsmp/acpi.c b/drivers/platform/x86/amd/hsmp/acpi.c > index 8257cd1da48e..275258ee86bf 100644 > --- a/drivers/platform/x86/amd/hsmp/acpi.c > +++ b/drivers/platform/x86/amd/hsmp/acpi.c > @@ -557,7 +557,7 @@ static int init_acpi(struct device *dev) > return ret; > } > > - if (hsmp_pdev->proto_ver >= HSMP_PROTO_VER6) { > + if (is_client_platform() || hsmp_pdev->proto_ver >= HSMP_PROTO_VER6) { I'm still not happy that we are missing HSMP protocol version in the client platform, but given the current status quo this makes sense. I just hope this can get fixed in platform F/W and this commit reverted later. > ret = hsmp_get_tbl_dram_base(sock_ind); > if (ret) > dev_info(dev, "Failed to init metric table\n"); > diff --git a/drivers/platform/x86/amd/hsmp/hsmp.c b/drivers/platform/x86/amd/hsmp/hsmp.c > index 60889c1b1099..f35a891772e0 100644 > --- a/drivers/platform/x86/amd/hsmp/hsmp.c > +++ b/drivers/platform/x86/amd/hsmp/hsmp.c > @@ -196,12 +196,16 @@ static const struct hsmp_plat_desc hsmp_desc_server = { > .metric_dram_msg = HSMP_GET_METRIC_TABLE_DRAM_ADDR, > }; > > -/* The client drives a different mailbox with the Ryzen Master SMC message set */ > +/* > + * Client firmware queries the metrics table version instead of the > + * interface version (HSMP_CLIENT_GET_INTERFACE_VER) to provide a unified > + * interface across multiple client platforms. > + */ > static const struct hsmp_plat_desc hsmp_desc_client = { > .msg_desc = hsmp_client_msg_desc_table, > .num_msgs = HSMP_CLIENT_MSG_ID_MAX, > .test_msg = HSMP_CLIENT_TEST, > - .proto_ver_msg = HSMP_CLIENT_GET_INTERFACE_VER, > + .proto_ver_msg = HSMP_CLIENT_GET_METRICS_TABLE_VER, > .metric_tbl_msg = HSMP_CLIENT_GET_METRICS_TABLE, > .metric_dram_msg = HSMP_CLIENT_GET_METRICS_TABLE_DRAM_ADDR, > };