From: Anthony Koo Date: Mon, 8 Aug 2022 03:38:56 +0000 (-0400) Subject: drm/amd/display: [FW Promotion] Release 0.0.130.0 X-Git-Tag: v6.1-rc1~159^2~15^2~142 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0acc5b06b5b450b351aa006c70264baf3062e988;p=thirdparty%2Fkernel%2Flinux.git drm/amd/display: [FW Promotion] Release 0.0.130.0 - For SubVP add scaling factor to allow firmware to calculate accurate line to start programming Reviewed-by: Aric Cyr Acked-by: Brian Chang Signed-off-by: Anthony Koo Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h index d7f3619352f04..829410a883a1c 100644 --- a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h +++ b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h @@ -976,8 +976,16 @@ struct dmub_cmd_fw_assisted_mclk_switch_pipe_data_v2 { uint16_t vtotal; uint8_t main_pipe_index; uint8_t phantom_pipe_index; + /* Since the microschedule is calculated in terms of OTG lines, + * include any scaling factors to make sure when we get accurate + * conversion when programming MALL_START_LINE (which is in terms + * of HUBP lines). If 4K is being downscaled to 1080p, scale factor + * is 1/2 (numerator = 1, denominator = 2). + */ + uint8_t scale_factor_numerator; + uint8_t scale_factor_denominator; uint8_t is_drr; - uint8_t padding; + uint8_t pad[2]; } subvp_data; struct { @@ -999,7 +1007,11 @@ struct dmub_cmd_fw_assisted_mclk_switch_pipe_data_v2 { } vblank_data; } pipe_config; - enum mclk_switch_mode mode; + /* - subvp_data in the union (pipe_config) takes up 27 bytes. + * - Make the "mode" field a uint8_t instead of enum so we only use 1 byte (only + * for the DMCUB command, cast to enum once we populate the DMCUB subvp state). + */ + uint8_t mode; // enum mclk_switch_mode }; /**