forked from Minki/linux
drm/amd/powerplay: update driver if file for sienna_cichlid
Update sienna_cichlid driver if header and related files. Support new smu metrics for pre & postDS frequency. Signed-off-by: Likun Gao <Likun.Gao@amd.com> Reviewed-by: Kenneth Feng <kenneth.feng@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
de273b73ca
commit
a486bc3c50
@ -27,7 +27,7 @@
|
||||
// *** IMPORTANT ***
|
||||
// SMU TEAM: Always increment the interface version if
|
||||
// any structure is changed in this file
|
||||
#define SMU11_DRIVER_IF_VERSION 0x33
|
||||
#define SMU11_DRIVER_IF_VERSION 0x34
|
||||
|
||||
#define PPTABLE_Sienna_Cichlid_SMU_VERSION 5
|
||||
|
||||
@ -968,9 +968,15 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
uint32_t CurrClock[PPCLK_COUNT];
|
||||
uint16_t AverageGfxclkFrequency;
|
||||
uint16_t AverageFclkFrequency;
|
||||
uint16_t AverageUclkFrequency ;
|
||||
|
||||
uint16_t AverageGfxclkFrequencyPreDs;
|
||||
uint16_t AverageGfxclkFrequencyPostDs;
|
||||
uint16_t AverageFclkFrequencyPreDs;
|
||||
uint16_t AverageFclkFrequencyPostDs;
|
||||
uint16_t AverageUclkFrequencyPreDs ;
|
||||
uint16_t AverageUclkFrequencyPostDs ;
|
||||
|
||||
|
||||
uint16_t AverageGfxActivity ;
|
||||
uint16_t AverageUclkActivity ;
|
||||
uint8_t CurrSocVoltageOffset ;
|
||||
@ -988,6 +994,7 @@ typedef struct {
|
||||
uint16_t TemperatureLiquid0 ;
|
||||
uint16_t TemperatureLiquid1 ;
|
||||
uint16_t TemperaturePlx ;
|
||||
uint16_t Padding16 ;
|
||||
uint32_t ThrottlerStatus ;
|
||||
|
||||
uint8_t LinkDpmLevel;
|
||||
@ -1006,8 +1013,10 @@ typedef struct {
|
||||
uint16_t AverageDclk0Frequency ;
|
||||
uint16_t AverageVclk1Frequency ;
|
||||
uint16_t AverageDclk1Frequency ;
|
||||
uint16_t VcnActivityPercentage ; //place holder, David N. to provide full sequence
|
||||
uint16_t padding16_2;
|
||||
uint16_t VcnActivityPercentage ; //place holder, David N. to provide full sequence
|
||||
uint8_t PcieRate ;
|
||||
uint8_t PcieWidth ;
|
||||
|
||||
} SmuMetrics_t;
|
||||
|
||||
typedef struct {
|
||||
|
@ -30,7 +30,7 @@
|
||||
#define SMU11_DRIVER_IF_VERSION_NV10 0x36
|
||||
#define SMU11_DRIVER_IF_VERSION_NV12 0x33
|
||||
#define SMU11_DRIVER_IF_VERSION_NV14 0x36
|
||||
#define SMU11_DRIVER_IF_VERSION_Sienna_Cichlid 0x33
|
||||
#define SMU11_DRIVER_IF_VERSION_Sienna_Cichlid 0x34
|
||||
#define SMU11_DRIVER_IF_VERSION_Navy_Flounder 0x2
|
||||
|
||||
/* MP Apertures */
|
||||
|
@ -70,6 +70,8 @@
|
||||
FEATURE_MASK(FEATURE_DPM_FCLK_BIT) | \
|
||||
FEATURE_MASK(FEATURE_DPM_DCEFCLK_BIT))
|
||||
|
||||
#define SMU_11_0_7_GFX_BUSY_THRESHOLD 15
|
||||
|
||||
static struct cmn2asic_msg_mapping sienna_cichlid_message_map[SMU_MSG_MAX_COUNT] = {
|
||||
MSG_MAP(TestMessage, PPSMC_MSG_TestMessage, 1),
|
||||
MSG_MAP(GetSmuVersion, PPSMC_MSG_GetSmuVersion, 1),
|
||||
@ -443,13 +445,16 @@ static int sienna_cichlid_get_smu_metrics_data(struct smu_context *smu,
|
||||
*value = metrics->CurrClock[PPCLK_DCEFCLK];
|
||||
break;
|
||||
case METRICS_AVERAGE_GFXCLK:
|
||||
*value = metrics->AverageGfxclkFrequency;
|
||||
if (metrics->AverageGfxActivity <= SMU_11_0_7_GFX_BUSY_THRESHOLD)
|
||||
*value = metrics->AverageGfxclkFrequencyPostDs;
|
||||
else
|
||||
*value = metrics->AverageGfxclkFrequencyPreDs;
|
||||
break;
|
||||
case METRICS_AVERAGE_FCLK:
|
||||
*value = metrics->AverageFclkFrequency;
|
||||
*value = metrics->AverageFclkFrequencyPostDs;
|
||||
break;
|
||||
case METRICS_AVERAGE_UCLK:
|
||||
*value = metrics->AverageUclkFrequency;
|
||||
*value = metrics->AverageUclkFrequencyPostDs;
|
||||
break;
|
||||
case METRICS_AVERAGE_GFXACTIVITY:
|
||||
*value = metrics->AverageGfxActivity;
|
||||
|
Loading…
Reference in New Issue
Block a user