drm/amd/display: add config for sending VSIF
authorAnthony Koo <Anthony.Koo@amd.com>
Tue, 8 May 2018 21:09:49 +0000 (17:09 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 27 Aug 2018 16:10:56 +0000 (11:10 -0500)
Signed-off-by: Anthony Koo <Anthony.Koo@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/modules/freesync/freesync.c
drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h

index 5f5e5ea20d789cda30747ca90104df7d170f6dba..f0f1e58b98309ce7b661ede21ca45fec01041926 100644 (file)
@@ -4680,6 +4680,7 @@ void set_freesync_on_stream(struct amdgpu_display_manager *dm,
                                aconnector->min_vfreq * 1000000;
                config.max_refresh_in_uhz =
                                aconnector->max_vfreq * 1000000;
+               config.vsif_supported = true;
        }
 
        mod_freesync_build_vrr_params(dm->freesync_module,
index 769f46777a1d55a3a41811fdd45cddc3e39fdfdd..e1688902a1b01472d427cdd2f6b57e00b617653d 100644 (file)
@@ -492,7 +492,7 @@ void mod_freesync_build_vrr_infopacket(struct mod_freesync *mod_freesync,
        /* Check if Freesync is supported. Return if false. If true,
         * set the corresponding bit in the info packet
         */
-       if (!vrr->supported)
+       if (!vrr->supported || !vrr->send_vsif)
                return;
 
        if (dc_is_hdmi_signal(stream->signal)) {
@@ -634,6 +634,7 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync,
                return;
 
        in_out_vrr->state = in_config->state;
+       in_out_vrr->send_vsif = in_config->vsif_supported;
 
        if (in_config->state == VRR_STATE_UNSUPPORTED) {
                in_out_vrr->state = VRR_STATE_UNSUPPORTED;
index 85c98afe93758f3afe61e7f4c3341bc9661cf137..a0f32cde721ccf337bc0894bff04216d414bab01 100644 (file)
@@ -78,6 +78,7 @@ enum mod_vrr_state {
 
 struct mod_freesync_config {
        enum mod_vrr_state state;
+       bool vsif_supported;
        bool ramping;
        bool btr;
        unsigned int min_refresh_in_uhz;
@@ -103,6 +104,7 @@ struct mod_vrr_params_fixed_refresh {
 
 struct mod_vrr_params {
        bool supported;
+       bool send_vsif;
        enum mod_vrr_state state;
 
        uint32_t min_refresh_in_uhz;