Commit e3c60b4e authored by Kenneth Feng's avatar Kenneth Feng Committed by Alex Deucher

drm/amd/pm: update the driver if header for smu_v13_0_7

update the driver if header for smu_v13_0_7
Signed-off-by: default avatarKenneth Feng <kenneth.feng@amd.com>
Reviewed-by: default avatarYang Wang <kevinyang.wang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 247c7b0d
...@@ -25,10 +25,10 @@ ...@@ -25,10 +25,10 @@
// *** IMPORTANT *** // *** IMPORTANT ***
// PMFW TEAM: Always increment the interface version on any change to this file // PMFW TEAM: Always increment the interface version on any change to this file
#define SMU13_DRIVER_IF_VERSION 0x28 #define SMU13_DRIVER_IF_VERSION 0x2A
//Increment this version if SkuTable_t or BoardTable_t change //Increment this version if SkuTable_t or BoardTable_t change
#define PPTABLE_VERSION 0x1D #define PPTABLE_VERSION 0x1E
#define NUM_GFXCLK_DPM_LEVELS 16 #define NUM_GFXCLK_DPM_LEVELS 16
#define NUM_SOCCLK_DPM_LEVELS 8 #define NUM_SOCCLK_DPM_LEVELS 8
...@@ -112,6 +112,22 @@ ...@@ -112,6 +112,22 @@
#define FEATURE_SPARE_63_BIT 63 #define FEATURE_SPARE_63_BIT 63
#define NUM_FEATURES 64 #define NUM_FEATURES 64
#define ALLOWED_FEATURE_CTRL_DEFAULT 0xFFFFFFFFFFFFFFFFULL
#define ALLOWED_FEATURE_CTRL_SCPM (1 << FEATURE_DPM_GFXCLK_BIT) | \
(1 << FEATURE_DPM_GFX_POWER_OPTIMIZER_BIT) | \
(1 << FEATURE_DPM_UCLK_BIT) | \
(1 << FEATURE_DPM_FCLK_BIT) | \
(1 << FEATURE_DPM_SOCCLK_BIT) | \
(1 << FEATURE_DPM_MP0CLK_BIT) | \
(1 << FEATURE_DPM_LINK_BIT) | \
(1 << FEATURE_DPM_DCN_BIT) | \
(1 << FEATURE_DS_GFXCLK_BIT) | \
(1 << FEATURE_DS_SOCCLK_BIT) | \
(1 << FEATURE_DS_FCLK_BIT) | \
(1 << FEATURE_DS_LCLK_BIT) | \
(1 << FEATURE_DS_DCFCLK_BIT) | \
(1 << FEATURE_DS_UCLK_BIT)
//For use with feature control messages //For use with feature control messages
typedef enum { typedef enum {
FEATURE_PWR_ALL, FEATURE_PWR_ALL,
...@@ -662,7 +678,7 @@ typedef struct { ...@@ -662,7 +678,7 @@ typedef struct {
#define PP_NUM_OD_VF_CURVE_POINTS PP_NUM_RTAVFS_PWL_ZONES + 1 #define PP_NUM_OD_VF_CURVE_POINTS PP_NUM_RTAVFS_PWL_ZONES + 1
#define PP_OD_FEATURE_VF_CURVE_BIT 0 #define PP_OD_FEATURE_GFX_VF_CURVE_BIT 0
#define PP_OD_FEATURE_VMAX_BIT 1 #define PP_OD_FEATURE_VMAX_BIT 1
#define PP_OD_FEATURE_PPT_BIT 2 #define PP_OD_FEATURE_PPT_BIT 2
#define PP_OD_FEATURE_FAN_CURVE_BIT 3 #define PP_OD_FEATURE_FAN_CURVE_BIT 3
...@@ -671,6 +687,8 @@ typedef struct { ...@@ -671,6 +687,8 @@ typedef struct {
#define PP_OD_FEATURE_TDC_BIT 6 #define PP_OD_FEATURE_TDC_BIT 6
#define PP_OD_FEATURE_GFXCLK_BIT 7 #define PP_OD_FEATURE_GFXCLK_BIT 7
#define PP_OD_FEATURE_UCLK_BIT 8 #define PP_OD_FEATURE_UCLK_BIT 8
#define PP_OD_FEATURE_ZERO_FAN_BIT 9
#define PP_OD_FEATURE_TEMPERATURE_BIT 10
typedef enum { typedef enum {
PP_OD_POWER_FEATURE_ALWAYS_ENABLED, PP_OD_POWER_FEATURE_ALWAYS_ENABLED,
...@@ -689,8 +707,8 @@ typedef struct { ...@@ -689,8 +707,8 @@ typedef struct {
uint8_t RuntimePwrSavingFeaturesCtrl; uint8_t RuntimePwrSavingFeaturesCtrl;
//Frequency changes //Frequency changes
uint16_t GfxclkFmin; // MHz int16_t GfxclkFmin; // MHz
uint16_t GfxclkFmax; // MHz int16_t GfxclkFmax; // MHz
uint16_t UclkFmin; // MHz uint16_t UclkFmin; // MHz
uint16_t UclkFmax; // MHz uint16_t UclkFmax; // MHz
...@@ -701,17 +719,17 @@ typedef struct { ...@@ -701,17 +719,17 @@ typedef struct {
//Fan control //Fan control
uint8_t FanLinearPwmPoints[NUM_OD_FAN_MAX_POINTS]; uint8_t FanLinearPwmPoints[NUM_OD_FAN_MAX_POINTS];
uint8_t FanLinearTempPoints[NUM_OD_FAN_MAX_POINTS]; uint8_t FanLinearTempPoints[NUM_OD_FAN_MAX_POINTS];
uint16_t FanMaximumRpm;
uint16_t FanMinimumPwm; uint16_t FanMinimumPwm;
uint16_t FanAcousticLimitRpm; uint16_t AcousticTargetRpmThreshold;
uint16_t AcousticLimitRpmThreshold;
uint16_t FanTargetTemperature; // Degree Celcius uint16_t FanTargetTemperature; // Degree Celcius
uint8_t FanZeroRpmEnable; uint8_t FanZeroRpmEnable;
uint8_t FanZeroRpmStopTemp; uint8_t FanZeroRpmStopTemp;
uint8_t FanMode; uint8_t FanMode;
uint8_t Padding[1]; uint8_t MaxOpTemp;
uint8_t Padding[4];
uint32_t Spare[13]; uint32_t Spare[12];
uint32_t MmHubPadding[8]; // SMU internal use. Adding here instead of external as a workaround uint32_t MmHubPadding[8]; // SMU internal use. Adding here instead of external as a workaround
} OverDriveTable_t; } OverDriveTable_t;
...@@ -740,17 +758,17 @@ typedef struct { ...@@ -740,17 +758,17 @@ typedef struct {
uint8_t FanLinearPwmPoints; uint8_t FanLinearPwmPoints;
uint8_t FanLinearTempPoints; uint8_t FanLinearTempPoints;
uint16_t FanMaximumRpm;
uint16_t FanMinimumPwm; uint16_t FanMinimumPwm;
uint16_t FanAcousticLimitRpm; uint16_t AcousticTargetRpmThreshold;
uint16_t AcousticLimitRpmThreshold;
uint16_t FanTargetTemperature; // Degree Celcius uint16_t FanTargetTemperature; // Degree Celcius
uint8_t FanZeroRpmEnable; uint8_t FanZeroRpmEnable;
uint8_t FanZeroRpmStopTemp; uint8_t FanZeroRpmStopTemp;
uint8_t FanMode; uint8_t FanMode;
uint8_t Padding[1]; uint8_t MaxOpTemp;
uint8_t Padding[4];
uint32_t Spare[12];
uint32_t Spare[13];
} OverDriveLimits_t; } OverDriveLimits_t;
...@@ -1018,7 +1036,8 @@ typedef struct { ...@@ -1018,7 +1036,8 @@ typedef struct {
uint16_t SocketPowerLimitAcTau[PPT_THROTTLER_COUNT]; // Time constant of LPF in ms uint16_t SocketPowerLimitAcTau[PPT_THROTTLER_COUNT]; // Time constant of LPF in ms
uint16_t SocketPowerLimitDcTau[PPT_THROTTLER_COUNT]; // Time constant of LPF in ms uint16_t SocketPowerLimitDcTau[PPT_THROTTLER_COUNT]; // Time constant of LPF in ms
uint32_t SpareVmin[12]; QuadraticInt_t Vmin_droop;
uint32_t SpareVmin[9];
//SECTION: DPM Configuration 1 //SECTION: DPM Configuration 1
...@@ -1307,7 +1326,6 @@ typedef struct { ...@@ -1307,7 +1326,6 @@ typedef struct {
uint32_t PostVoltageSetBacoDelay; // in microseconds. Amount of time FW will wait after power good is established or PSI0 command is issued uint32_t PostVoltageSetBacoDelay; // in microseconds. Amount of time FW will wait after power good is established or PSI0 command is issued
uint32_t BacoEntryDelay; // in milliseconds. Amount of time FW will wait to trigger BACO entry after receiving entry notification from OS uint32_t BacoEntryDelay; // in milliseconds. Amount of time FW will wait to trigger BACO entry after receiving entry notification from OS
// SECTION: Board Reserved // SECTION: Board Reserved
uint32_t BoardSpare[64]; uint32_t BoardSpare[64];
...@@ -1382,8 +1400,14 @@ typedef struct { ...@@ -1382,8 +1400,14 @@ typedef struct {
uint16_t AverageDclk0Frequency ; uint16_t AverageDclk0Frequency ;
uint16_t AverageVclk1Frequency ; uint16_t AverageVclk1Frequency ;
uint16_t AverageDclk1Frequency ; uint16_t AverageDclk1Frequency ;
uint16_t PCIeBusy ;
uint16_t dGPU_W_MAX ;
uint16_t padding ;
uint32_t MetricsCounter ;
uint16_t AvgVoltage[SVI_PLANE_COUNT]; uint16_t AvgVoltage[SVI_PLANE_COUNT];
uint16_t AvgCurrent[SVI_PLANE_COUNT];
uint16_t AverageGfxActivity ; uint16_t AverageGfxActivity ;
uint16_t AverageUclkActivity ; uint16_t AverageUclkActivity ;
...@@ -1415,11 +1439,13 @@ typedef struct { ...@@ -1415,11 +1439,13 @@ typedef struct {
uint16_t AverageUclkActivity_MAX; uint16_t AverageUclkActivity_MAX;
uint32_t PublicSerialNumberLower;
uint32_t PublicSerialNumberUpper;
} SmuMetrics_t; } SmuMetrics_t;
typedef struct { typedef struct {
SmuMetrics_t SmuMetrics; SmuMetrics_t SmuMetrics;
uint32_t Spare[32]; uint32_t Spare[30];
// Padding - ignore // Padding - ignore
uint32_t MmHubPadding[8]; // SMU internal use uint32_t MmHubPadding[8]; // SMU internal use
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_4 0x04 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_4 0x04
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_5 0x04 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_5 0x04
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_0 0x29 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_0 0x29
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_7 0x28 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_7 0x2A
#define SMU13_MODE1_RESET_WAIT_TIME_IN_MS 500 //500ms #define SMU13_MODE1_RESET_WAIT_TIME_IN_MS 500 //500ms
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment