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

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
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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,
+3 −3
Original line number Diff line number Diff line
@@ -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 {
+4 −5
Original line number Diff line number Diff line
@@ -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       */