summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
diff options
context:
space:
mode:
authorEric Yang <Eric.Yang2@amd.com>2021-07-09 19:57:50 +0300
committerAlex Deucher <alexander.deucher@amd.com>2021-07-23 17:07:58 +0300
commita4d5df1787cc143b513b9f472ead1ff5eaa550e1 (patch)
tree12b8b8eba21ada474cdd94a00f5b2fdbb61a7b08 /drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
parentba16b22d42283b6393db123ce0ff6e17bb0d01eb (diff)
downloadlinux-a4d5df1787cc143b513b9f472ead1ff5eaa550e1.tar.xz
drm/amd/display: add workaround for riommu invalidation request hang
[Why] When an riommu invalidation request come at the same time as a pipe is disabled there can be a case where DCN cannot ACK the request if only one VMID is setup in the inuse list. [How] Setup a second unused VMID will work around the issue. Reviewed-by: Jun Lei <jun.lei@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Eric Yang <Eric.Yang2@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h')
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
index 713f5558f5e1..259283d8bde8 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
@@ -166,12 +166,15 @@ struct hubbub_funcs {
void (*program_det_size)(struct hubbub *hubbub, int hubp_inst, unsigned det_buffer_size_in_kbyte);
void (*program_compbuf_size)(struct hubbub *hubbub, unsigned compbuf_size_kb, bool safe_to_increase);
void (*init_crb)(struct hubbub *hubbub);
+ void (*apply_invalidation_req_wa)(struct hubbub *hubbub,
+ struct dcn_hubbub_phys_addr_config *pa_config);
};
struct hubbub {
const struct hubbub_funcs *funcs;
struct dc_context *ctx;
bool riommu_active;
+ struct dcn_hubbub_phys_addr_config vmid_cache;
};
#endif