summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/display/dmub
diff options
context:
space:
mode:
authorAnthony Koo <Anthony.Koo@amd.com>2022-08-07 23:38:56 -0400
committerAlex Deucher <alexander.deucher@amd.com>2022-08-25 13:19:29 -0400
commit0acc5b06b5b450b351aa006c70264baf3062e988 (patch)
treef7eec5945dcb992cfd5ee6dc82e468bee36fbc5c /drivers/gpu/drm/amd/display/dmub
parent7c55b598b32936e506a699698fbe37c891ad1873 (diff)
downloadlinux-stable-0acc5b06b5b450b351aa006c70264baf3062e988.tar.gz
linux-stable-0acc5b06b5b450b351aa006c70264baf3062e988.tar.bz2
linux-stable-0acc5b06b5b450b351aa006c70264baf3062e988.zip
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 <Aric.Cyr@amd.com> Acked-by: Brian Chang <Brian.Chang@amd.com> Signed-off-by: Anthony Koo <Anthony.Koo@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dmub')
-rw-r--r--drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h16
1 files changed, 14 insertions, 2 deletions
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 d7f3619352f0..829410a883a1 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
};
/**