drm/amd/display: log destination of vertical interrupt[Why]Knowing the destination of OTG's vertical interrupt 2 is useful fordebugging, but it is not currently included in the OTG state readback
drm/amd/display: log destination of vertical interrupt[Why]Knowing the destination of OTG's vertical interrupt 2 is useful fordebugging, but it is not currently included in the OTG state readbacklogic[How]Read the OTG interrupt destination register to get the vertical interrupt2 destination on ASICs that have this register when reading back the OTGstate from hardwareReviewed-by: Sung Lee <[email protected]>Reviewed-by: Aric Cyr <[email protected]>Signed-off-by: Josip Pavic <[email protected]>Signed-off-by: Wayne Lin <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
show more ...
drm/amd/display: Wait for all pending cleared before full update[Description]Before every full update we must wait for all pending updates to becleared - this is particularly important for minima
drm/amd/display: Wait for all pending cleared before full update[Description]Before every full update we must wait for all pending updates to becleared - this is particularly important for minimal transitionsbecause if we don't wait for pending cleared, it will be as ifthere was no minimal transition at all. In OTG we must read 3 differentstatus registers for pending cleared, one specifically for OTG updates,one specifically for OPTC updates, and the last for surface relatedupdates.Reviewed-by: Dillon Varone <[email protected]>Signed-off-by: Alvin Lee <[email protected]>Signed-off-by: Aurabindo Pillai <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Wait for double buffer update on ODM changes[WHAT & HOW]We must wait for ODM double buffer updates to completebefore exiting the pipe update sequence or we may reduceDISPCLK and
drm/amd/display: Wait for double buffer update on ODM changes[WHAT & HOW]We must wait for ODM double buffer updates to completebefore exiting the pipe update sequence or we may reduceDISPCLK and hit some transient underflow (pixel rate isreduced before the pipes have ODM enabled).Reviewed-by: Samson Tam <[email protected]>Cc: Mario Limonciello <[email protected]>Cc: Alex Deucher <[email protected]>Cc: [email protected]Signed-off-by: Alex Hung <[email protected]>Signed-off-by: Alvin Lee <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Add left edge pixel for YCbCr422/420 + ODM pipe split[WHY]Currently 3-tap chroma subsampling is used for YCbCr422/420. When ODMpipesplit is used, pixels on the left edge of ODM s
drm/amd/display: Add left edge pixel for YCbCr422/420 + ODM pipe split[WHY]Currently 3-tap chroma subsampling is used for YCbCr422/420. When ODMpipesplit is used, pixels on the left edge of ODM slices need one extrapixel from the right edge of the previous slice to calculate the correctchroma value.Without this change, the chroma value is slightly different thanexpected. This is usually imperceptible visually, but it impacts testpattern CRCs for compliance test automation.[HOW]Update logic to use the register for adding extra left edge pixel forYCbCr422/420 ODM cases.Reviewed-by: George Shen <[email protected]>Acked-by: Alex Hung <[email protected]>Signed-off-by: Wenjing Liu <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: use even ODM slice width for two pixels per container[why]When optc uses two pixel per container, each ODM slice width must be aneven number.[how]If ODM slice width is odd num
drm/amd/display: use even ODM slice width for two pixels per container[why]When optc uses two pixel per container, each ODM slice width must be aneven number.[how]If ODM slice width is odd number increase it by 1.Reviewed-by: Dillon Varone <[email protected]>Acked-by: Wayne Lin <[email protected]>Signed-off-by: Wenjing Liu <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
Revert "drm/amd/display: Add fallback configuration when set DRR"This reverts commit d76c0a23b557c6ebb3fac32548100d76a1e0ce23.This change must be reverted since it caused soft hangs when changing
Revert "drm/amd/display: Add fallback configuration when set DRR"This reverts commit d76c0a23b557c6ebb3fac32548100d76a1e0ce23.This change must be reverted since it caused soft hangs when changingthe refresh rate to 122 & 144Hz when using a 7000 series GPU.Acked-by: Alex Deucher <[email protected]>Reviewed-by: Harry Wentland <[email protected]>Reported-by: Mark Broadworth <[email protected]>Cc: Daniel Wheeler <[email protected]>Cc: Harry Wentland <[email protected]>Signed-off-by: Rodrigo Siqueira <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Add fallback configuration when set DRRSet OTG/OPTC parameter to 0 if failed to set DRR.Acked-by: Hamza Mahfooz <[email protected]>Signed-off-by: Rodrigo Siqueira <Rodrigo.S
drm/amd/display: Add fallback configuration when set DRRSet OTG/OPTC parameter to 0 if failed to set DRR.Acked-by: Hamza Mahfooz <[email protected]>Signed-off-by: Rodrigo Siqueira <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Do not recursively call manual trigger programming[WHY&HOW]We should not be recursively calling the manual trigger programming function whenFAMS is not in use.Cc: [email protected]
drm/amd/display: Do not recursively call manual trigger programming[WHY&HOW]We should not be recursively calling the manual trigger programming function whenFAMS is not in use.Cc: [email protected]Reviewed-by: Alvin Lee <[email protected]>Acked-by: Hamza Mahfooz <[email protected]>Signed-off-by: Dillon Varone <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Implement wait_for_odm_update_pending_complete[WHY]Odm update is doubled buffered. We need to wait for ODM update to becompleted before optimizing bandwidth or programming new ud
drm/amd/display: Implement wait_for_odm_update_pending_complete[WHY]Odm update is doubled buffered. We need to wait for ODM update to becompleted before optimizing bandwidth or programming new udpates.[HOW]implement wait_for_odm_update_pending_complete function to wait for:1. odm configuration update is no longer pending in timing generator.2. no pending dpg pattern update for each active OPP.Cc: Mario Limonciello <[email protected]>Cc: Alex Deucher <[email protected]>Cc: [email protected]Reviewed-by: Alvin Lee <[email protected]>Acked-by: Alex Hung <[email protected]>Signed-off-by: Wenjing Liu <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Clear OPTC mem select on disable[Why]Not clearing the memory select bits prior to OPTC disable can cause DSCcorruption issues when attempting to reuse a memory instance for anoth
drm/amd/display: Clear OPTC mem select on disable[Why]Not clearing the memory select bits prior to OPTC disable can cause DSCcorruption issues when attempting to reuse a memory instance for anotherOPTC that enables ODM.[How]Clear the memory select bits prior to disabling an OPTC.Cc: Mario Limonciello <[email protected]>Cc: Alex Deucher <[email protected]>Cc: [email protected]Reviewed-by: Charlene Liu <[email protected]>Acked-by: Alex Hung <[email protected]>Signed-off-by: Ilya Bakoulin <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Disconnect phantom pipe OPP from OPTC being disabled[Why]If an OPP is used for a different OPTC without first being disconnectedfrom the previous OPTC, unexpected behaviour can o
drm/amd/display: Disconnect phantom pipe OPP from OPTC being disabled[Why]If an OPP is used for a different OPTC without first being disconnectedfrom the previous OPTC, unexpected behaviour can occur. This alsoapplies to phantom pipes, which is what the current logic missed.[How]Disconnect OPPs from OPTC for phantom pipes before disabling OTG master.Also move the disconnection to before the OTG master disable, since theregister is double buffered.Reviewed-by: Dillon Varone <[email protected]>Acked-by: Rodrigo Siqueira <[email protected]>Signed-off-by: George Shen <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Fix hang/underflow when transitioning to ODM4:1[Why]Under some circumstances, disabling an OPTC and attempting to reclaimits OPP(s) for a different OPTC could cause a hang/underf
drm/amd/display: Fix hang/underflow when transitioning to ODM4:1[Why]Under some circumstances, disabling an OPTC and attempting to reclaimits OPP(s) for a different OPTC could cause a hang/underflow due to OPPsnot being properly disconnected from the disabled OPTC.[How]Ensure that all OPPs are unassigned from an OPTC when it gets disabled.Reviewed-by: Alvin Lee <[email protected]>Acked-by: Wayne Lin <[email protected]>Signed-off-by: Ilya Bakoulin <[email protected]>Tested-by: Daniel Wheeler <[email protected]>Signed-off-by: Alex Deucher <[email protected]>
drm/amd/display: Refactor OPTC into component folder[why]Move all optc files to uniquefolder optc.[how]creating optc repo in dc, and moved the dcnxx_optc.c and .h files intocorresponding new
drm/amd/display: Refactor OPTC into component folder[why]Move all optc files to uniquefolder optc.[how]creating optc repo in dc, and moved the dcnxx_optc.c and .h files intocorresponding new folders inside the optc and cleared the linkageerrors by adding relative paths in the Makefile.template.Reviewed-by: Martin Leung <[email protected]>Acked-by: Hamza Mahfooz <[email protected]>Signed-off-by: Parandhaman K <[email protected]>Signed-off-by: Alex Deucher <[email protected]>