drm/amd/display: Add shared firmware state for DMUB IPS handshake
[Why] Read modify write hazards can occur when using a single shared scratch register between driver and firmware leading to driver accessing DCN in IPS2 and a system hang. [How] Add infrastructure for using REGION6 as a shared firmware state between driver and firmware. This region is uncachable. Replace the existing get/set idle calls with reads/writes to the (volatile) shared firmware state blocks that a separated by at least a cache line between firmware and driver. Remove the workarounds that required rewriting/checking read modify write hazards. Reviewed-by:Charlene Liu <charlene.liu@amd.com> Acked-by:
Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by:
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Tested-by:
Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
Showing
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 2 additions, 1 deletiondrivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c 45 additions, 38 deletionsdrivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
- drivers/gpu/drm/amd/display/dmub/dmub_srv.h 5 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/dmub_srv.h
- drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h 115 additions, 0 deletionsdrivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.c 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.c
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.h 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.h
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.c 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.c
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.h 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.h
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h 2 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c 11 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c
- drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.h 7 additions, 1 deletiondrivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.h
- drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c 11 additions, 2 deletionsdrivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
Loading
Please register or sign in to comment