From: Clay King <[email protected]>

[Why & How]
Previously, when calculating dto phase, we would incorrectly fail when phase
<=0 without additionally checking for the integer value. This meant that
calculations would incorrectly fail when the desired pixel clock was an exact
multiple of the reference clock.

Reviewed-by: Dillon Varone <[email protected]>
Signed-off-by: Clay King <[email protected]>
Signed-off-by: Alex Hung <[email protected]>
Tested-by: Dan Wheeler <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c 
b/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c
index 668ee2d405fd..0b8ed9b94d3c 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c
@@ -619,7 +619,7 @@ void dccg401_set_dp_dto(
                dto_integer = div_u64(params->pixclk_hz, dto_modulo_hz);
                dto_phase_hz = params->pixclk_hz - dto_integer * dto_modulo_hz;
 
-               if (dto_phase_hz <= 0) {
+               if (dto_phase_hz <= 0 && dto_integer <= 0) {
                        /* negative pixel rate should never happen */
                        BREAK_TO_DEBUGGER();
                        return;
-- 
2.43.0

Reply via email to