drm/amdgpu/dc: fill in missing call to atom cmd table for pll adjust v2
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 3 Mar 2021 15:18:53 +0000 (10:18 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 5 Mar 2021 20:13:37 +0000 (15:13 -0500)
We set up the parameters, but never called the atom table.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/bios/command_table.c

index afc10b9..ad13e4e 100644 (file)
@@ -1531,6 +1531,27 @@ static enum bp_result adjust_display_pll_v2(
        params.ucEncodeMode =
                        (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom(
                                        bp_params->signal_type, false);
+
+       if (EXEC_BIOS_CMD_TABLE(AdjustDisplayPll, params)) {
+               /* Convert output pixel clock back 10KHz-->KHz: multiply
+                * original pixel clock in KHz by ratio
+                * [output pxlClk/input pxlClk] */
+               uint64_t pixel_clk_10_khz_out =
+                               (uint64_t)le16_to_cpu(params.usPixelClock);
+               uint64_t pixel_clk = (uint64_t)bp_params->pixel_clock;
+
+               if (pixel_clock_10KHz_in != 0) {
+                       bp_params->adjusted_pixel_clock =
+                                       div_u64(pixel_clk * pixel_clk_10_khz_out,
+                                                       pixel_clock_10KHz_in);
+               } else {
+                       bp_params->adjusted_pixel_clock = 0;
+                       BREAK_TO_DEBUGGER();
+               }
+
+               result = BP_RESULT_OK;
+       }
+
        return result;
 }