Patrik Jakobsson c1c27f
From bf6fb473952e3d19d6b9a55b2a0e210a477a05fc Mon Sep 17 00:00:00 2001
Patrik Jakobsson c1c27f
From: lyndonli <Lyndon.Li@amd.com>
Patrik Jakobsson c1c27f
Date: Mon, 21 Nov 2022 09:08:42 +0800
Patrik Jakobsson c1c27f
Subject: drm/amd/pm: update driver if header for smu_13_0_7
Patrik Jakobsson c1c27f
Git-commit: f2e1aa267f12b82e03927d1e918d2844ddd3eea5
Patrik Jakobsson c1c27f
Patch-mainline: v6.1-rc7
Patrik Jakobsson c1c27f
References: jsc#PED-1166 jsc#PED-1168 jsc#PED-1170 jsc#PED-1218 jsc#PED-1220 jsc#PED-1222 jsc#PED-1223 jsc#PED-1225 jsc#PED-2849
Patrik Jakobsson c1c27f
Patrik Jakobsson c1c27f
update driver if header for smu_13_0_7
Patrik Jakobsson c1c27f
Patrik Jakobsson c1c27f
Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Patrik Jakobsson c1c27f
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Patrik Jakobsson c1c27f
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Patrik Jakobsson c1c27f
Reviewed-by: Evan Quan <evan.quan@amd.com>
Patrik Jakobsson c1c27f
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Patrik Jakobsson c1c27f
Cc: stable@vger.kernel.org # 6.0.x
Patrik Jakobsson c1c27f
Acked-by: Patrik Jakobsson <pjakobsson@suse.de>
Patrik Jakobsson c1c27f
---
Patrik Jakobsson c1c27f
 .../inc/pmfw_if/smu13_driver_if_v13_0_7.h     | 117 ++++++++++++------
Patrik Jakobsson c1c27f
 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h  |   2 +-
Patrik Jakobsson c1c27f
 2 files changed, 80 insertions(+), 39 deletions(-)
Patrik Jakobsson c1c27f
Patrik Jakobsson c1c27f
diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h
Patrik Jakobsson c1c27f
index 25c08f963f49..d6b13933a98f 100644
Patrik Jakobsson c1c27f
--- a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h
Patrik Jakobsson c1c27f
+++ b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h
Patrik Jakobsson c1c27f
@@ -25,10 +25,10 @@
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 // *** IMPORTANT ***
Patrik Jakobsson c1c27f
 // PMFW TEAM: Always increment the interface version on any change to this file
Patrik Jakobsson c1c27f
-#define SMU13_DRIVER_IF_VERSION  0x2C
Patrik Jakobsson c1c27f
+#define SMU13_DRIVER_IF_VERSION  0x35
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 //Increment this version if SkuTable_t or BoardTable_t change
Patrik Jakobsson c1c27f
-#define PPTABLE_VERSION 0x20
Patrik Jakobsson c1c27f
+#define PPTABLE_VERSION 0x27
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 #define NUM_GFXCLK_DPM_LEVELS    16
Patrik Jakobsson c1c27f
 #define NUM_SOCCLK_DPM_LEVELS    8
Patrik Jakobsson c1c27f
@@ -96,7 +96,7 @@
Patrik Jakobsson c1c27f
 #define FEATURE_MEM_TEMP_READ_BIT             47
Patrik Jakobsson c1c27f
 #define FEATURE_ATHUB_MMHUB_PG_BIT            48
Patrik Jakobsson c1c27f
 #define FEATURE_SOC_PCC_BIT                   49
Patrik Jakobsson c1c27f
-#define FEATURE_SPARE_50_BIT                  50
Patrik Jakobsson c1c27f
+#define FEATURE_EDC_PWRBRK_BIT                50
Patrik Jakobsson c1c27f
 #define FEATURE_SPARE_51_BIT                  51
Patrik Jakobsson c1c27f
 #define FEATURE_SPARE_52_BIT                  52
Patrik Jakobsson c1c27f
 #define FEATURE_SPARE_53_BIT                  53
Patrik Jakobsson c1c27f
@@ -282,15 +282,15 @@ typedef enum {
Patrik Jakobsson c1c27f
 } I2cControllerPort_e;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 typedef enum {
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_VR_GFX = 0,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_VR_SOC,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_VR_VMEMP,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_VR_VDDIO,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_LIQUID0,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_LIQUID1,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_PLX,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_OTHER,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_NAME_COUNT,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_VR_GFX = 0,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_VR_SOC,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_VR_VMEMP,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_VR_VDDIO,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_LIQUID0,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_LIQUID1,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_PLX,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_FAN_INTAKE,
Patrik Jakobsson c1c27f
+	I2C_CONTROLLER_NAME_COUNT,
Patrik Jakobsson c1c27f
 } I2cControllerName_e;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 typedef enum {
Patrik Jakobsson c1c27f
@@ -302,6 +302,7 @@ typedef enum {
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_THROTTLER_LIQUID0,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_THROTTLER_LIQUID1,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_THROTTLER_PLX,
Patrik Jakobsson c1c27f
+  I2C_CONTROLLER_THROTTLER_FAN_INTAKE,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_THROTTLER_INA3221,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_THROTTLER_COUNT,
Patrik Jakobsson c1c27f
 } I2cControllerThrottler_e;
Patrik Jakobsson c1c27f
@@ -309,8 +310,9 @@ typedef enum {
Patrik Jakobsson c1c27f
 typedef enum {
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_PROTOCOL_VR_XPDE132G5,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_PROTOCOL_VR_IR35217,
Patrik Jakobsson c1c27f
-  I2C_CONTROLLER_PROTOCOL_TMP_TMP102A,
Patrik Jakobsson c1c27f
+  I2C_CONTROLLER_PROTOCOL_TMP_MAX31875,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_PROTOCOL_INA3221,
Patrik Jakobsson c1c27f
+  I2C_CONTROLLER_PROTOCOL_TMP_MAX6604,
Patrik Jakobsson c1c27f
   I2C_CONTROLLER_PROTOCOL_COUNT,
Patrik Jakobsson c1c27f
 } I2cControllerProtocol_e;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -690,6 +692,9 @@ typedef struct {
Patrik Jakobsson c1c27f
 #define PP_OD_FEATURE_UCLK_BIT      8
Patrik Jakobsson c1c27f
 #define PP_OD_FEATURE_ZERO_FAN_BIT      9
Patrik Jakobsson c1c27f
 #define PP_OD_FEATURE_TEMPERATURE_BIT 10
Patrik Jakobsson c1c27f
+#define PP_OD_FEATURE_POWER_FEATURE_CTRL_BIT 11
Patrik Jakobsson c1c27f
+#define PP_OD_FEATURE_ASIC_TDC_BIT 12
Patrik Jakobsson c1c27f
+#define PP_OD_FEATURE_COUNT 13
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 typedef enum {
Patrik Jakobsson c1c27f
   PP_OD_POWER_FEATURE_ALWAYS_ENABLED,
Patrik Jakobsson c1c27f
@@ -697,6 +702,11 @@ typedef enum {
Patrik Jakobsson c1c27f
   PP_OD_POWER_FEATURE_ALWAYS_DISABLED,
Patrik Jakobsson c1c27f
 } PP_OD_POWER_FEATURE_e;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
+typedef enum {
Patrik Jakobsson c1c27f
+  FAN_MODE_AUTO = 0,
Patrik Jakobsson c1c27f
+  FAN_MODE_MANUAL_LINEAR,
Patrik Jakobsson c1c27f
+} FanMode_e;
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
 typedef struct {
Patrik Jakobsson c1c27f
   uint32_t FeatureCtrlMask;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -708,8 +718,8 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint8_t                RuntimePwrSavingFeaturesCtrl;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   //Frequency changes
Patrik Jakobsson c1c27f
-  int16_t               GfxclkFmin;           // MHz
Patrik Jakobsson c1c27f
-  int16_t               GfxclkFmax;           // MHz
Patrik Jakobsson c1c27f
+  int16_t                GfxclkFmin;           // MHz
Patrik Jakobsson c1c27f
+  int16_t                GfxclkFmax;           // MHz
Patrik Jakobsson c1c27f
   uint16_t               UclkFmin;             // MHz
Patrik Jakobsson c1c27f
   uint16_t               UclkFmax;             // MHz
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -730,7 +740,12 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint8_t                MaxOpTemp;
Patrik Jakobsson c1c27f
   uint8_t                Padding[4];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  uint32_t               Spare[12];
Patrik Jakobsson c1c27f
+  uint16_t               GfxVoltageFullCtrlMode;
Patrik Jakobsson c1c27f
+  uint16_t               GfxclkFullCtrlMode;
Patrik Jakobsson c1c27f
+  uint16_t               UclkFullCtrlMode;
Patrik Jakobsson c1c27f
+  int16_t                AsicTdc;
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
+  uint32_t               Spare[10];
Patrik Jakobsson c1c27f
   uint32_t               MmHubPadding[8]; // SMU internal use. Adding here instead of external as a workaround
Patrik Jakobsson c1c27f
 } OverDriveTable_t;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -748,8 +763,8 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint8_t                IdlePwrSavingFeaturesCtrl;
Patrik Jakobsson c1c27f
   uint8_t                RuntimePwrSavingFeaturesCtrl;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  uint16_t               GfxclkFmin;           // MHz
Patrik Jakobsson c1c27f
-  uint16_t               GfxclkFmax;           // MHz
Patrik Jakobsson c1c27f
+  int16_t                GfxclkFmin;           // MHz
Patrik Jakobsson c1c27f
+  int16_t                GfxclkFmax;           // MHz
Patrik Jakobsson c1c27f
   uint16_t               UclkFmin;             // MHz
Patrik Jakobsson c1c27f
   uint16_t               UclkFmax;             // MHz
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -769,7 +784,12 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint8_t                MaxOpTemp;
Patrik Jakobsson c1c27f
   uint8_t                Padding[4];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  uint32_t               Spare[12];
Patrik Jakobsson c1c27f
+  uint16_t               GfxVoltageFullCtrlMode;
Patrik Jakobsson c1c27f
+  uint16_t               GfxclkFullCtrlMode;
Patrik Jakobsson c1c27f
+  uint16_t               UclkFullCtrlMode;
Patrik Jakobsson c1c27f
+  int16_t                AsicTdc;
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
+  uint32_t               Spare[10];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 } OverDriveLimits_t;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -903,7 +923,8 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint16_t  FanStartTempMin;
Patrik Jakobsson c1c27f
   uint16_t  FanStartTempMax;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  uint32_t Spare[12];
Patrik Jakobsson c1c27f
+  uint16_t  PowerMinPpt0[POWER_SOURCE_COUNT];
Patrik Jakobsson c1c27f
+  uint32_t  Spare[11];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 } MsgLimits_t;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -1086,11 +1107,13 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint32_t        GfxoffSpare[15];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // GFX GPO
Patrik Jakobsson c1c27f
-  float           DfllBtcMasterScalerM;
Patrik Jakobsson c1c27f
+  uint32_t        DfllBtcMasterScalerM;
Patrik Jakobsson c1c27f
   int32_t         DfllBtcMasterScalerB;
Patrik Jakobsson c1c27f
-  float           DfllBtcSlaveScalerM;
Patrik Jakobsson c1c27f
+  uint32_t        DfllBtcSlaveScalerM;
Patrik Jakobsson c1c27f
   int32_t         DfllBtcSlaveScalerB;
Patrik Jakobsson c1c27f
-  uint32_t        GfxGpoSpare[12];
Patrik Jakobsson c1c27f
+  uint32_t        DfllPccAsWaitCtrl; //GDFLL_AS_WAIT_CTRL_PCC register value to be passed to RLC msg
Patrik Jakobsson c1c27f
+  uint32_t        DfllPccAsStepCtrl; //GDFLL_AS_STEP_CTRL_PCC register value to be passed to RLC msg
Patrik Jakobsson c1c27f
+  uint32_t        GfxGpoSpare[10];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // GFX DCS
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
@@ -1106,7 +1129,10 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint16_t        DcsTimeout;           //This is the amount of time SMU FW waits for RLC to put GFX into GFXOFF before reverting to the fallback mechanism of throttling GFXCLK to Fmin.
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  uint32_t        DcsSpare[16];
Patrik Jakobsson c1c27f
+  uint32_t        DcsSpare[14];
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
+  // UCLK section
Patrik Jakobsson c1c27f
+  uint16_t     ShadowFreqTableUclk[NUM_UCLK_DPM_LEVELS];     // In MHz
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // UCLK section
Patrik Jakobsson c1c27f
   uint8_t      UseStrobeModeOptimizations; //Set to indicate that FW should use strobe mode optimizations
Patrik Jakobsson c1c27f
@@ -1163,13 +1189,14 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint16_t IntakeTempHighIntakeAcousticLimit;
Patrik Jakobsson c1c27f
   uint16_t IntakeTempAcouticLimitReleaseRate;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  uint16_t FanStalledTempLimitOffset;
Patrik Jakobsson c1c27f
+  int16_t FanAbnormalTempLimitOffset;
Patrik Jakobsson c1c27f
   uint16_t FanStalledTriggerRpm;
Patrik Jakobsson c1c27f
-  uint16_t FanAbnormalTriggerRpm;
Patrik Jakobsson c1c27f
-  uint16_t FanPadding;
Patrik Jakobsson c1c27f
-
Patrik Jakobsson c1c27f
-  uint32_t     FanSpare[14];
Patrik Jakobsson c1c27f
+  uint16_t FanAbnormalTriggerRpmCoeff;
Patrik Jakobsson c1c27f
+  uint16_t FanAbnormalDetectionEnable;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
+  uint8_t      FanIntakeSensorSupport;
Patrik Jakobsson c1c27f
+  uint8_t      FanIntakePadding[3];
Patrik Jakobsson c1c27f
+  uint32_t     FanSpare[13];
Patrik Jakobsson c1c27f
   // SECTION: VDD_GFX AVFS
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   uint8_t      OverrideGfxAvfsFuses;
Patrik Jakobsson c1c27f
@@ -1193,7 +1220,6 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint32_t   dGbV_dT_vmin;
Patrik Jakobsson c1c27f
   uint32_t   dGbV_dT_vmax;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
-  //Unused: PMFW-9370
Patrik Jakobsson c1c27f
   uint32_t   V2F_vmin_range_low;
Patrik Jakobsson c1c27f
   uint32_t   V2F_vmin_range_high;
Patrik Jakobsson c1c27f
   uint32_t   V2F_vmax_range_low;
Patrik Jakobsson c1c27f
@@ -1238,8 +1264,21 @@ typedef struct {
Patrik Jakobsson c1c27f
   // SECTION: Advanced Options
Patrik Jakobsson c1c27f
   uint32_t          DebugOverrides;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
+  // Section: Total Board Power idle vs active coefficients
Patrik Jakobsson c1c27f
+  uint8_t     TotalBoardPowerSupport;
Patrik Jakobsson c1c27f
+  uint8_t     TotalBoardPowerPadding[3];
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
+  int16_t     TotalIdleBoardPowerM;
Patrik Jakobsson c1c27f
+  int16_t     TotalIdleBoardPowerB;
Patrik Jakobsson c1c27f
+  int16_t     TotalBoardPowerM;
Patrik Jakobsson c1c27f
+  int16_t     TotalBoardPowerB;
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
+  QuadraticInt_t qFeffCoeffGameClock[POWER_SOURCE_COUNT];
Patrik Jakobsson c1c27f
+  QuadraticInt_t qFeffCoeffBaseClock[POWER_SOURCE_COUNT];
Patrik Jakobsson c1c27f
+  QuadraticInt_t qFeffCoeffBoostClock[POWER_SOURCE_COUNT];
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
   // SECTION: Sku Reserved
Patrik Jakobsson c1c27f
-  uint32_t         Spare[64];
Patrik Jakobsson c1c27f
+  uint32_t         Spare[43];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // Padding for MMHUB - do not modify this
Patrik Jakobsson c1c27f
   uint32_t     MmHubPadding[8];
Patrik Jakobsson c1c27f
@@ -1304,7 +1343,8 @@ typedef struct {
Patrik Jakobsson c1c27f
   // SECTION: Clock Spread Spectrum
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // UCLK Spread Spectrum
Patrik Jakobsson c1c27f
-  uint16_t     UclkSpreadPadding;
Patrik Jakobsson c1c27f
+  uint8_t      UclkTrainingModeSpreadPercent; // Q4.4
Patrik Jakobsson c1c27f
+  uint8_t      UclkSpreadPadding;
Patrik Jakobsson c1c27f
   uint16_t     UclkSpreadFreq;      // kHz
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // UCLK Spread Spectrum
Patrik Jakobsson c1c27f
@@ -1317,11 +1357,7 @@ typedef struct {
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // Section: Memory Config
Patrik Jakobsson c1c27f
   uint8_t      DramWidth; // Width of interface to the channel for each DRAM module. See DRAM_BIT_WIDTH_TYPE_e
Patrik Jakobsson c1c27f
-  uint8_t      PaddingMem1[3];
Patrik Jakobsson c1c27f
-
Patrik Jakobsson c1c27f
-  // Section: Total Board Power
Patrik Jakobsson c1c27f
-  uint16_t     TotalBoardPower;     //Only needed for TCP Estimated case, where TCP = TGP+Total Board Power
Patrik Jakobsson c1c27f
-  uint16_t     BoardPowerPadding;
Patrik Jakobsson c1c27f
+  uint8_t      PaddingMem1[7];
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   // SECTION: UMC feature flags
Patrik Jakobsson c1c27f
   uint8_t      HsrEnabled;
Patrik Jakobsson c1c27f
@@ -1423,8 +1459,11 @@ typedef struct {
Patrik Jakobsson c1c27f
   uint16_t Vcn1ActivityPercentage  ;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   uint32_t EnergyAccumulator;
Patrik Jakobsson c1c27f
-  uint16_t AverageSocketPower    ;
Patrik Jakobsson c1c27f
+  uint16_t AverageSocketPower;
Patrik Jakobsson c1c27f
+  uint16_t AverageTotalBoardPower;
Patrik Jakobsson c1c27f
+
Patrik Jakobsson c1c27f
   uint16_t AvgTemperature[TEMP_COUNT];
Patrik Jakobsson c1c27f
+  uint16_t AvgTemperatureFanIntake;
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
   uint8_t  PcieRate               ;
Patrik Jakobsson c1c27f
   uint8_t  PcieWidth              ;
Patrik Jakobsson c1c27f
@@ -1592,5 +1631,7 @@ typedef struct {
Patrik Jakobsson c1c27f
 #define IH_INTERRUPT_CONTEXT_ID_AUDIO_D0            0x5
Patrik Jakobsson c1c27f
 #define IH_INTERRUPT_CONTEXT_ID_AUDIO_D3            0x6
Patrik Jakobsson c1c27f
 #define IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING  0x7
Patrik Jakobsson c1c27f
+#define IH_INTERRUPT_CONTEXT_ID_FAN_ABNORMAL        0x8
Patrik Jakobsson c1c27f
+#define IH_INTERRUPT_CONTEXT_ID_FAN_RECOVERY        0x9
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 #endif
Patrik Jakobsson c1c27f
diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h
Patrik Jakobsson c1c27f
index b7f4569aff2a..865d6358918d 100644
Patrik Jakobsson c1c27f
--- a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h
Patrik Jakobsson c1c27f
+++ b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h
Patrik Jakobsson c1c27f
@@ -31,7 +31,7 @@
Patrik Jakobsson c1c27f
 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_4 0x07
Patrik Jakobsson c1c27f
 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_5 0x04
Patrik Jakobsson c1c27f
 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_0_10 0x32
Patrik Jakobsson c1c27f
-#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_7 0x2C
Patrik Jakobsson c1c27f
+#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_7 0x35
Patrik Jakobsson c1c27f
 #define SMU13_DRIVER_IF_VERSION_SMU_V13_0_10 0x1D
Patrik Jakobsson c1c27f
 
Patrik Jakobsson c1c27f
 #define SMU13_MODE1_RESET_WAIT_TIME_IN_MS 500  //500ms
Patrik Jakobsson c1c27f
-- 
Patrik Jakobsson c1c27f
2.38.1
Patrik Jakobsson c1c27f