drm/amd/pm: Keep interface version in PMFW header
Use the interface version directly from PMFW interface header file rather than keeping another definition in common smu13 file. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Asad kamal <asad.kamal@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
676915e410
commit
9661bf6876
|
@ -24,6 +24,8 @@
|
||||||
#ifndef SMU13_DRIVER_IF_ALDEBARAN_H
|
#ifndef SMU13_DRIVER_IF_ALDEBARAN_H
|
||||||
#define SMU13_DRIVER_IF_ALDEBARAN_H
|
#define SMU13_DRIVER_IF_ALDEBARAN_H
|
||||||
|
|
||||||
|
#define SMU13_DRIVER_IF_VERSION_ALDE 0x08
|
||||||
|
|
||||||
#define NUM_VCLK_DPM_LEVELS 8
|
#define NUM_VCLK_DPM_LEVELS 8
|
||||||
#define NUM_DCLK_DPM_LEVELS 8
|
#define NUM_DCLK_DPM_LEVELS 8
|
||||||
#define NUM_SOCCLK_DPM_LEVELS 8
|
#define NUM_SOCCLK_DPM_LEVELS 8
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
#ifndef SMU13_DRIVER_IF_V13_0_0_H
|
#ifndef SMU13_DRIVER_IF_V13_0_0_H
|
||||||
#define SMU13_DRIVER_IF_V13_0_0_H
|
#define SMU13_DRIVER_IF_V13_0_0_H
|
||||||
|
|
||||||
|
#define SMU13_0_0_DRIVER_IF_VERSION 0x32
|
||||||
|
|
||||||
//Increment this version if SkuTable_t or BoardTable_t change
|
//Increment this version if SkuTable_t or BoardTable_t change
|
||||||
#define PPTABLE_VERSION 0x26
|
#define PPTABLE_VERSION 0x26
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
// *** IMPORTANT ***
|
// *** IMPORTANT ***
|
||||||
// SMU TEAM: Always increment the interface version if
|
// SMU TEAM: Always increment the interface version if
|
||||||
// any structure is changed in this file
|
// any structure is changed in this file
|
||||||
#define PMFW_DRIVER_IF_VERSION 8
|
#define SMU13_0_4_DRIVER_IF_VERSION 8
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t value;
|
int32_t value;
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#ifndef __SMU13_DRIVER_IF_V13_0_5_H__
|
#ifndef __SMU13_DRIVER_IF_V13_0_5_H__
|
||||||
#define __SMU13_DRIVER_IF_V13_0_5_H__
|
#define __SMU13_DRIVER_IF_V13_0_5_H__
|
||||||
|
|
||||||
#define PMFW_DRIVER_IF_VERSION 4
|
#define SMU13_0_5_DRIVER_IF_VERSION 4
|
||||||
|
|
||||||
// Throttler Status Bitmask
|
// Throttler Status Bitmask
|
||||||
#define THROTTLER_STATUS_BIT_SPL 0
|
#define THROTTLER_STATUS_BIT_SPL 0
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
// *** 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 0x35
|
#define SMU13_0_7_DRIVER_IF_VERSION 0x35
|
||||||
|
|
||||||
//Increment this version if SkuTable_t or BoardTable_t change
|
//Increment this version if SkuTable_t or BoardTable_t change
|
||||||
#define PPTABLE_VERSION 0x27
|
#define PPTABLE_VERSION 0x27
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
// *** IMPORTANT ***
|
// *** IMPORTANT ***
|
||||||
// SMU TEAM: Always increment the interface version if
|
// SMU TEAM: Always increment the interface version if
|
||||||
// any structure is changed in this file
|
// any structure is changed in this file
|
||||||
#define SMU13_DRIVER_IF_VERSION 4
|
#define SMU13_YELLOW_CARP_DRIVER_IF_VERSION 4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t value;
|
int32_t value;
|
||||||
|
|
|
@ -25,17 +25,6 @@
|
||||||
|
|
||||||
#include "amdgpu_smu.h"
|
#include "amdgpu_smu.h"
|
||||||
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_INV 0xFFFFFFFF
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_YELLOW_CARP 0x04
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_ALDE 0x08
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_0_0 0x37
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_4 0x08
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_5 0x04
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_0_10 0x32
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_7 0x37
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_10 0x1D
|
|
||||||
#define SMU13_DRIVER_IF_VERSION_SMU_V13_0_6 0x0
|
|
||||||
|
|
||||||
#define SMU13_MODE1_RESET_WAIT_TIME_IN_MS 500 //500ms
|
#define SMU13_MODE1_RESET_WAIT_TIME_IN_MS 500 //500ms
|
||||||
|
|
||||||
/* MP Apertures */
|
/* MP Apertures */
|
||||||
|
|
|
@ -2147,5 +2147,6 @@ void aldebaran_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->clock_map = aldebaran_clk_map;
|
smu->clock_map = aldebaran_clk_map;
|
||||||
smu->feature_map = aldebaran_feature_mask_map;
|
smu->feature_map = aldebaran_feature_mask_map;
|
||||||
smu->table_map = aldebaran_table_map;
|
smu->table_map = aldebaran_table_map;
|
||||||
|
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_ALDE;
|
||||||
smu_v13_0_set_smu_mailbox_registers(smu);
|
smu_v13_0_set_smu_mailbox_registers(smu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -269,45 +269,10 @@ int smu_v13_0_check_fw_version(struct smu_context *smu)
|
||||||
smu_major = (smu_version >> 16) & 0xff;
|
smu_major = (smu_version >> 16) & 0xff;
|
||||||
smu_minor = (smu_version >> 8) & 0xff;
|
smu_minor = (smu_version >> 8) & 0xff;
|
||||||
smu_debug = (smu_version >> 0) & 0xff;
|
smu_debug = (smu_version >> 0) & 0xff;
|
||||||
if (smu->is_apu)
|
if (smu->is_apu ||
|
||||||
|
adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 6))
|
||||||
adev->pm.fw_version = smu_version;
|
adev->pm.fw_version = smu_version;
|
||||||
|
|
||||||
switch (adev->ip_versions[MP1_HWIP][0]) {
|
|
||||||
case IP_VERSION(13, 0, 2):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_ALDE;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 0):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_0_0;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 10):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_0_10;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 7):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_7;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 1):
|
|
||||||
case IP_VERSION(13, 0, 3):
|
|
||||||
case IP_VERSION(13, 0, 8):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_YELLOW_CARP;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 4):
|
|
||||||
case IP_VERSION(13, 0, 11):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_4;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 5):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_5;
|
|
||||||
break;
|
|
||||||
case IP_VERSION(13, 0, 6):
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_6;
|
|
||||||
adev->pm.fw_version = smu_version;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
dev_err(adev->dev, "smu unsupported IP version: 0x%x.\n",
|
|
||||||
adev->ip_versions[MP1_HWIP][0]);
|
|
||||||
smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_INV;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* only for dGPU w/ SMU13*/
|
/* only for dGPU w/ SMU13*/
|
||||||
if (adev->pm.fw)
|
if (adev->pm.fw)
|
||||||
dev_dbg(smu->adev->dev, "smu fw reported program %d, version = 0x%08x (%d.%d.%d)\n",
|
dev_dbg(smu->adev->dev, "smu fw reported program %d, version = 0x%08x (%d.%d.%d)\n",
|
||||||
|
|
|
@ -2199,5 +2199,6 @@ void smu_v13_0_0_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->table_map = smu_v13_0_0_table_map;
|
smu->table_map = smu_v13_0_0_table_map;
|
||||||
smu->pwr_src_map = smu_v13_0_0_pwr_src_map;
|
smu->pwr_src_map = smu_v13_0_0_pwr_src_map;
|
||||||
smu->workload_map = smu_v13_0_0_workload_map;
|
smu->workload_map = smu_v13_0_0_workload_map;
|
||||||
|
smu->smc_driver_if_version = SMU13_0_0_DRIVER_IF_VERSION;
|
||||||
smu_v13_0_0_set_smu_mailbox_registers(smu);
|
smu_v13_0_0_set_smu_mailbox_registers(smu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1043,6 +1043,7 @@ void smu_v13_0_4_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->message_map = smu_v13_0_4_message_map;
|
smu->message_map = smu_v13_0_4_message_map;
|
||||||
smu->feature_map = smu_v13_0_4_feature_mask_map;
|
smu->feature_map = smu_v13_0_4_feature_mask_map;
|
||||||
smu->table_map = smu_v13_0_4_table_map;
|
smu->table_map = smu_v13_0_4_table_map;
|
||||||
|
smu->smc_driver_if_version = SMU13_0_4_DRIVER_IF_VERSION;
|
||||||
smu->is_apu = true;
|
smu->is_apu = true;
|
||||||
|
|
||||||
if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 4))
|
if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 4))
|
||||||
|
|
|
@ -1068,6 +1068,7 @@ void smu_v13_0_5_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->feature_map = smu_v13_0_5_feature_mask_map;
|
smu->feature_map = smu_v13_0_5_feature_mask_map;
|
||||||
smu->table_map = smu_v13_0_5_table_map;
|
smu->table_map = smu_v13_0_5_table_map;
|
||||||
smu->is_apu = true;
|
smu->is_apu = true;
|
||||||
|
smu->smc_driver_if_version = SMU13_0_5_DRIVER_IF_VERSION;
|
||||||
smu->param_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_C2PMSG_34);
|
smu->param_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_C2PMSG_34);
|
||||||
smu->msg_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_C2PMSG_2);
|
smu->msg_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_C2PMSG_2);
|
||||||
smu->resp_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_C2PMSG_33);
|
smu->resp_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_C2PMSG_33);
|
||||||
|
|
|
@ -2176,5 +2176,6 @@ void smu_v13_0_6_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->clock_map = smu_v13_0_6_clk_map;
|
smu->clock_map = smu_v13_0_6_clk_map;
|
||||||
smu->feature_map = smu_v13_0_6_feature_mask_map;
|
smu->feature_map = smu_v13_0_6_feature_mask_map;
|
||||||
smu->table_map = smu_v13_0_6_table_map;
|
smu->table_map = smu_v13_0_6_table_map;
|
||||||
|
smu->smc_driver_if_version = SMU13_0_6_DRIVER_IF_VERSION;
|
||||||
smu_v13_0_set_smu_mailbox_registers(smu);
|
smu_v13_0_set_smu_mailbox_registers(smu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1797,5 +1797,6 @@ void smu_v13_0_7_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->table_map = smu_v13_0_7_table_map;
|
smu->table_map = smu_v13_0_7_table_map;
|
||||||
smu->pwr_src_map = smu_v13_0_7_pwr_src_map;
|
smu->pwr_src_map = smu_v13_0_7_pwr_src_map;
|
||||||
smu->workload_map = smu_v13_0_7_workload_map;
|
smu->workload_map = smu_v13_0_7_workload_map;
|
||||||
|
smu->smc_driver_if_version = SMU13_0_7_DRIVER_IF_VERSION;
|
||||||
smu_v13_0_set_smu_mailbox_registers(smu);
|
smu_v13_0_set_smu_mailbox_registers(smu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1234,5 +1234,6 @@ void yellow_carp_set_ppt_funcs(struct smu_context *smu)
|
||||||
smu->feature_map = yellow_carp_feature_mask_map;
|
smu->feature_map = yellow_carp_feature_mask_map;
|
||||||
smu->table_map = yellow_carp_table_map;
|
smu->table_map = yellow_carp_table_map;
|
||||||
smu->is_apu = true;
|
smu->is_apu = true;
|
||||||
|
smu->smc_driver_if_version = SMU13_YELLOW_CARP_DRIVER_IF_VERSION;
|
||||||
smu_v13_0_set_smu_mailbox_registers(smu);
|
smu_v13_0_set_smu_mailbox_registers(smu);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue