[1/2] drm/amd/pm: update SMU IP v13.0.4 driver interface version

Limonciello, Mario mario.limonciello at amd.com
Thu Oct 13 21:35:28 UTC 2022


On 10/13/2022 00:46, Tim Huang wrote:
> Update the SMU driver interface version to V7.
> 
> Signed-off-by: Tim Huang <tim.huang at amd.com>
> ---
>   .../swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h | 17 +++++++++++++++--
>   1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h
> index ae2d337158f3..f77401709d83 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h
> +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h
> @@ -27,7 +27,7 @@
>   // *** IMPORTANT ***
>   // SMU TEAM: Always increment the interface version if
>   // any structure is changed in this file
> -#define PMFW_DRIVER_IF_VERSION 5
> +#define PMFW_DRIVER_IF_VERSION 7
>   
>   typedef struct {
>     int32_t value;
> @@ -163,8 +163,8 @@ typedef struct {
>     uint16_t DclkFrequency;               //[MHz]
>     uint16_t MemclkFrequency;             //[MHz]
>     uint16_t spare;                       //[centi]
> -  uint16_t UvdActivity;                 //[centi]
>     uint16_t GfxActivity;                 //[centi]
> +  uint16_t UvdActivity;                 //[centi]

This is unfortunate, it means that these two flipped based on PMFW 
driver interface version!

With 13.0.4 in 6.0, this should probably come back.

Cc: stable at vger.kernel.org #6.0
Reviewed-by: Mario Limonciello <mario.limonciello at amd.com>

>   
>     uint16_t Voltage[2];                  //[mV] indices: VDDCR_VDD, VDDCR_SOC
>     uint16_t Current[2];                  //[mA] indices: VDDCR_VDD, VDDCR_SOC
> @@ -199,6 +199,19 @@ typedef struct {
>     uint16_t DeviceState;
>     uint16_t CurTemp;                     //[centi-Celsius]
>     uint16_t spare2;
> +
> +  uint16_t AverageGfxclkFrequency;
> +  uint16_t AverageFclkFrequency;
> +  uint16_t AverageGfxActivity;
> +  uint16_t AverageSocclkFrequency;
> +  uint16_t AverageVclkFrequency;
> +  uint16_t AverageVcnActivity;
> +  uint16_t AverageDRAMReads;          //Filtered DF Bandwidth::DRAM Reads
> +  uint16_t AverageDRAMWrites;         //Filtered DF Bandwidth::DRAM Writes
> +  uint16_t AverageSocketPower;        //Filtered value of CurrentSocketPower
> +  uint16_t AverageCorePower;          //Filtered of [sum of CorePower[8]])
> +  uint16_t AverageCoreC0Residency[8]; //Filtered of [average C0 residency %  per core]
> +  uint32_t MetricsCounter;            //Counts the # of metrics table parameter reads per update to the metrics table, i.e. if the metrics table update happens every 1 second, this value could be up to 1000 if the smu collected metrics data every cycle, or as low as 0 if the smu was asleep the whole time. Reset to 0 after writing.
>   } SmuMetrics_t;
>   
>   typedef struct {



More information about the amd-gfx mailing list