mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 22:22:08 +02:00
drm/amd/display: Add pwait status to DMCUB diagnostics
[Why] To know if the firmware is idle when logging. [How] Add the pwait status to the DMCUB diagnostics. Reviewed-by: Ovidiu Bunea <ovidiu.bunea@amd.com> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
79db43611f
commit
d1085d1305
|
|
@ -356,6 +356,7 @@ struct dmub_diagnostic_data {
|
|||
uint8_t is_traceport_en : 1;
|
||||
uint8_t is_cw0_enabled : 1;
|
||||
uint8_t is_cw6_enabled : 1;
|
||||
uint8_t is_pwait : 1;
|
||||
};
|
||||
|
||||
struct dmub_srv_inbox {
|
||||
|
|
|
|||
|
|
@ -416,7 +416,7 @@ uint32_t dmub_dcn31_get_current_time(struct dmub_srv *dmub)
|
|||
|
||||
void dmub_dcn31_get_diagnostic_data(struct dmub_srv *dmub)
|
||||
{
|
||||
uint32_t is_dmub_enabled, is_soft_reset, is_sec_reset;
|
||||
uint32_t is_dmub_enabled, is_soft_reset, is_sec_reset, is_pwait;
|
||||
uint32_t is_traceport_enabled, is_cw0_enabled, is_cw6_enabled;
|
||||
struct dmub_timeout_info timeout = {0};
|
||||
|
||||
|
|
@ -466,6 +466,9 @@ void dmub_dcn31_get_diagnostic_data(struct dmub_srv *dmub)
|
|||
REG_GET(DMCUB_CNTL, DMCUB_ENABLE, &is_dmub_enabled);
|
||||
dmub->debug.is_dmcub_enabled = is_dmub_enabled;
|
||||
|
||||
REG_GET(DMCUB_CNTL, DMCUB_PWAIT_MODE_STATUS, &is_pwait);
|
||||
dmub->debug.is_pwait = is_pwait;
|
||||
|
||||
REG_GET(DMCUB_CNTL2, DMCUB_SOFT_RESET, &is_soft_reset);
|
||||
dmub->debug.is_dmcub_soft_reset = is_soft_reset;
|
||||
|
||||
|
|
|
|||
|
|
@ -454,7 +454,7 @@ uint32_t dmub_dcn35_get_current_time(struct dmub_srv *dmub)
|
|||
|
||||
void dmub_dcn35_get_diagnostic_data(struct dmub_srv *dmub)
|
||||
{
|
||||
uint32_t is_dmub_enabled, is_soft_reset;
|
||||
uint32_t is_dmub_enabled, is_soft_reset, is_pwait;
|
||||
uint32_t is_traceport_enabled, is_cw6_enabled;
|
||||
struct dmub_timeout_info timeout = {0};
|
||||
|
||||
|
|
@ -505,6 +505,9 @@ void dmub_dcn35_get_diagnostic_data(struct dmub_srv *dmub)
|
|||
REG_GET(DMCUB_CNTL, DMCUB_ENABLE, &is_dmub_enabled);
|
||||
dmub->debug.is_dmcub_enabled = is_dmub_enabled;
|
||||
|
||||
REG_GET(DMCUB_CNTL, DMCUB_PWAIT_MODE_STATUS, &is_pwait);
|
||||
dmub->debug.is_pwait = is_pwait;
|
||||
|
||||
REG_GET(DMCUB_CNTL2, DMCUB_SOFT_RESET, &is_soft_reset);
|
||||
dmub->debug.is_dmcub_soft_reset = is_soft_reset;
|
||||
|
||||
|
|
|
|||
|
|
@ -413,7 +413,7 @@ uint32_t dmub_dcn401_get_current_time(struct dmub_srv *dmub)
|
|||
|
||||
void dmub_dcn401_get_diagnostic_data(struct dmub_srv *dmub)
|
||||
{
|
||||
uint32_t is_dmub_enabled, is_soft_reset, is_sec_reset;
|
||||
uint32_t is_dmub_enabled, is_soft_reset, is_sec_reset, is_pwait;
|
||||
uint32_t is_traceport_enabled, is_cw0_enabled, is_cw6_enabled;
|
||||
struct dmub_timeout_info timeout = {0};
|
||||
|
||||
|
|
@ -464,6 +464,9 @@ void dmub_dcn401_get_diagnostic_data(struct dmub_srv *dmub)
|
|||
REG_GET(DMCUB_CNTL, DMCUB_ENABLE, &is_dmub_enabled);
|
||||
dmub->debug.is_dmcub_enabled = is_dmub_enabled;
|
||||
|
||||
REG_GET(DMCUB_CNTL, DMCUB_PWAIT_MODE_STATUS, &is_pwait);
|
||||
dmub->debug.is_pwait = is_pwait;
|
||||
|
||||
REG_GET(DMCUB_CNTL2, DMCUB_SOFT_RESET, &is_soft_reset);
|
||||
dmub->debug.is_dmcub_soft_reset = is_soft_reset;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user