Commit 07772b07 authored by Josip Pavic's avatar Josip Pavic Committed by Alex Deucher

drm/amd/display: Update DMCU versioning mechanism

[Why]
Current date based versioning doesn't tell us about feature version
and build version, and is not useful for debug.

[How]
Add versioning based on feature and build
Signed-off-by: default avatarJosip Pavic <Josip.Pavic@amd.com>
Reviewed-by: default avatarAnthony Koo <Anthony.Koo@amd.com>
Acked-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b2e85302
...@@ -331,10 +331,10 @@ static void dcn10_get_dmcu_version(struct dmcu *dmcu) ...@@ -331,10 +331,10 @@ static void dcn10_get_dmcu_version(struct dmcu *dmcu)
/* Write address to IRAM_RD_ADDR and read from DATA register */ /* Write address to IRAM_RD_ADDR and read from DATA register */
REG_WRITE(DMCU_IRAM_RD_CTRL, dmcu_version_offset); REG_WRITE(DMCU_IRAM_RD_CTRL, dmcu_version_offset);
dmcu->dmcu_version.interface_version = REG_READ(DMCU_IRAM_RD_DATA); dmcu->dmcu_version.interface_version = REG_READ(DMCU_IRAM_RD_DATA);
dmcu->dmcu_version.year = ((REG_READ(DMCU_IRAM_RD_DATA) << 8) | dmcu->dmcu_version.abm_version = REG_READ(DMCU_IRAM_RD_DATA);
dmcu->dmcu_version.psr_version = REG_READ(DMCU_IRAM_RD_DATA);
dmcu->dmcu_version.build_version = ((REG_READ(DMCU_IRAM_RD_DATA) << 8) |
REG_READ(DMCU_IRAM_RD_DATA)); REG_READ(DMCU_IRAM_RD_DATA));
dmcu->dmcu_version.month = REG_READ(DMCU_IRAM_RD_DATA);
dmcu->dmcu_version.date = REG_READ(DMCU_IRAM_RD_DATA);
/* Disable write access to IRAM to allow dynamic sleep state */ /* Disable write access to IRAM to allow dynamic sleep state */
REG_UPDATE_2(DMCU_RAM_ACCESS_CTRL, REG_UPDATE_2(DMCU_RAM_ACCESS_CTRL,
......
...@@ -39,10 +39,10 @@ enum dmcu_state { ...@@ -39,10 +39,10 @@ enum dmcu_state {
}; };
struct dmcu_version { struct dmcu_version {
unsigned int date;
unsigned int month;
unsigned int year;
unsigned int interface_version; unsigned int interface_version;
unsigned int abm_version;
unsigned int psr_version;
unsigned int build_version;
}; };
struct dmcu { struct dmcu {
......
...@@ -87,11 +87,10 @@ struct iram_table_v_2 { ...@@ -87,11 +87,10 @@ struct iram_table_v_2 {
/* For reading PSR State directly from IRAM */ /* For reading PSR State directly from IRAM */
uint8_t psr_state; /* 0xf0 */ uint8_t psr_state; /* 0xf0 */
uint8_t dmcu_interface_version; /* 0xf1 */ uint8_t dmcu_mcp_interface_version; /* 0xf1 */
uint8_t dmcu_date_version_year_b0; /* 0xf2 */ uint8_t dmcu_abm_feature_version; /* 0xf2 */
uint8_t dmcu_date_version_year_b1; /* 0xf3 */ uint8_t dmcu_psr_feature_version; /* 0xf3 */
uint8_t dmcu_date_version_month; /* 0xf4 */ uint16_t dmcu_version; /* 0xf4 */
uint8_t dmcu_date_version_day; /* 0xf5 */
uint8_t dmcu_state; /* 0xf6 */ uint8_t dmcu_state; /* 0xf6 */
uint16_t blRampReduction; /* 0xf7 */ uint16_t blRampReduction; /* 0xf7 */
......
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