drm/amd/display: Update DMCU versioning mechanism
authorJosip Pavic <Josip.Pavic@amd.com>
Tue, 8 Jan 2019 19:43:10 +0000 (14:43 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 25 Jan 2019 21:15:36 +0000 (16:15 -0500)
[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: Josip Pavic <Josip.Pavic@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
drivers/gpu/drm/amd/display/modules/power/power_helpers.c

index e927c89..c2926cf 100644 (file)
@@ -331,10 +331,10 @@ static void dcn10_get_dmcu_version(struct dmcu *dmcu)
        /* Write address to IRAM_RD_ADDR and read from DATA register */
        REG_WRITE(DMCU_IRAM_RD_CTRL, dmcu_version_offset);
        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));
-       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 */
        REG_UPDATE_2(DMCU_RAM_ACCESS_CTRL,
index ed32a75..cbaa438 100644 (file)
@@ -39,10 +39,10 @@ enum dmcu_state {
 };
 
 struct dmcu_version {
-       unsigned int date;
-       unsigned int month;
-       unsigned int year;
        unsigned int interface_version;
+       unsigned int abm_version;
+       unsigned int psr_version;
+       unsigned int build_version;
 };
 
 struct dmcu {
index 89b082b..5432183 100644 (file)
@@ -87,11 +87,10 @@ struct iram_table_v_2 {
 
        /* For reading PSR State directly from IRAM */
        uint8_t psr_state;                                              /* 0xf0       */
-       uint8_t dmcu_interface_version;                                 /* 0xf1       */
-       uint8_t dmcu_date_version_year_b0;                              /* 0xf2       */
-       uint8_t dmcu_date_version_year_b1;                              /* 0xf3       */
-       uint8_t dmcu_date_version_month;                                /* 0xf4       */
-       uint8_t dmcu_date_version_day;                                  /* 0xf5       */
+       uint8_t dmcu_mcp_interface_version;                                                     /* 0xf1       */
+       uint8_t dmcu_abm_feature_version;                                                       /* 0xf2       */
+       uint8_t dmcu_psr_feature_version;                                                       /* 0xf3       */
+       uint16_t dmcu_version;                                                                          /* 0xf4       */
        uint8_t dmcu_state;                                             /* 0xf6       */
 
        uint16_t blRampReduction;                                       /* 0xf7       */