Hi, On 1/20/22 18:44, Mario Limonciello wrote: > Yellow carp has been outputting versions like `1093.24.0`, but this > is supposed to be 69.24.0. That is the MSB is being interpreted > incorrectly. > > The MSB is not part of the major version, but has generally been > treated that way thus far. It's actually the program, and used to > distinguish between two programs from a similar family but different > codebase. > > Link: https://patchwork.freedesktop.org/patch/469993/ > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > This change also has been submitted to GPU driver. > > drivers/platform/x86/amd-pmc.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c > index 06b73d5c928f..c9c4db39ca62 100644 > --- a/drivers/platform/x86/amd-pmc.c > +++ b/drivers/platform/x86/amd-pmc.c > @@ -124,9 +124,10 @@ struct amd_pmc_dev { > u32 cpu_id; > u32 active_ips; > /* SMU version information */ > - u16 major; > - u16 minor; > - u16 rev; > + u8 smu_program; > + u8 major; > + u8 minor; > + u8 rev; > struct device *dev; > struct pci_dev *rdev; > struct mutex lock; /* generic mutex lock */ > @@ -180,11 +181,13 @@ static int amd_pmc_get_smu_version(struct amd_pmc_dev *dev) > if (rc) > return rc; > > - dev->major = (val >> 16) & GENMASK(15, 0); > + dev->smu_program = (val >> 24) & GENMASK(7, 0); > + dev->major = (val >> 16) & GENMASK(7, 0); > dev->minor = (val >> 8) & GENMASK(7, 0); > dev->rev = (val >> 0) & GENMASK(7, 0); > > - dev_dbg(dev->dev, "SMU version is %u.%u.%u\n", dev->major, dev->minor, dev->rev); > + dev_dbg(dev->dev, "SMU program %u version is %u.%u.%u\n", > + dev->smu_program, dev->major, dev->minor, dev->rev); > > return 0; > } >