OSDN Git Service

drm/amd/display: Add dual edp optimization flag.
authorYongqiang Sun <yongqiang.sun@amd.com>
Wed, 4 Nov 2020 19:26:38 +0000 (14:26 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 16 Nov 2020 17:19:33 +0000 (12:19 -0500)
[Why & How]
Add a dual edp power optimization flag, so driver will
notify this flag to dmub FW to determine if apply the
power optimization.

Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Bindu Ramamurthy <bindu.r@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c
drivers/gpu/drm/amd/display/dc/dc_types.h
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

index 165fd2f..f522b66 100644 (file)
@@ -2757,6 +2757,7 @@ bool dc_link_setup_psr(struct dc_link *link,
         *  (Always set for DAL2, did not check ASIC)
         */
        psr_context->allow_smu_optimizations = psr_config->allow_smu_optimizations;
+       psr_context->allow_multi_disp_optimizations = psr_config->allow_multi_disp_optimizations;
 
        /* Complete PSR entry before aborting to prevent intermittent
         * freezes on certain eDPs
index 86406b4..80757a0 100644 (file)
@@ -697,6 +697,7 @@ struct psr_config {
        bool psr_frame_capture_indication_req;
        unsigned int psr_sdp_transmit_line_num_deadline;
        bool allow_smu_optimizations;
+       bool allow_multi_disp_optimizations;
 };
 
 union dmcu_psr_level {
@@ -799,6 +800,7 @@ struct psr_context {
         */
        unsigned int frame_delay;
        bool allow_smu_optimizations;
+       bool allow_multi_disp_optimizations;
 };
 
 struct colorspace_transform {
index 0d6fe7c..17e84f3 100644 (file)
@@ -261,6 +261,7 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub,
        // Misc
        copy_settings_data->psr_level                           = psr_context->psr_level.u32all;
        copy_settings_data->smu_optimizations_en                = psr_context->allow_smu_optimizations;
+       copy_settings_data->multi_disp_optimizations_en = psr_context->allow_multi_disp_optimizations;
        copy_settings_data->frame_delay                         = psr_context->frame_delay;
        copy_settings_data->frame_cap_ind                       = psr_context->psrFrameCaptureIndicationReq;
        copy_settings_data->init_sdp_deadline                   = psr_context->sdpTransmitLineNumDeadline;
index 9fd24f9..a980862 100644 (file)
@@ -613,7 +613,8 @@ struct dmub_cmd_psr_copy_settings_data {
        uint8_t smu_optimizations_en;
        uint8_t frame_delay;
        uint8_t frame_cap_ind;
-       uint8_t pad[3];
+       uint8_t pad[2];
+       uint8_t multi_disp_optimizations_en;
        uint16_t init_sdp_deadline;
        uint16_t pad2;
 };