diff options
author | Harry Wentland <harry.wentland@amd.com> | 2018-08-15 17:49:27 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-08-27 12:10:50 -0400 |
commit | 8c3db1284a016dc670fe0a98afec33e001d363bc (patch) | |
tree | 4af894c366c31652d02303c02524f6de08f8a4b7 /drivers/gpu/drm/amd/display | |
parent | bfcea5204287b0a09dac71fa56a5d066d94d9bb1 (diff) |
drm/amdgpu: fill in amdgpu_dm_remove_sink_from_freesync_module
Add code to tear down freesync modules when disabled.
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 497a718d1bc4..0c805be054a1 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | |||
@@ -5229,19 +5229,37 @@ void amdgpu_dm_add_sink_to_freesync_module(struct drm_connector *connector, | |||
5229 | dm_con_state->freesync_capable = true; | 5229 | dm_con_state->freesync_capable = true; |
5230 | } | 5230 | } |
5231 | } | 5231 | } |
5232 | |||
5233 | /* | ||
5234 | * TODO figure out how to notify user-mode or DRM of freesync caps | ||
5235 | * once we figure out how to deal with freesync in an upstreamable | ||
5236 | * fashion | ||
5237 | */ | ||
5238 | |||
5239 | } | 5232 | } |
5240 | 5233 | ||
5241 | void amdgpu_dm_remove_sink_from_freesync_module(struct drm_connector *connector) | 5234 | void amdgpu_dm_remove_sink_from_freesync_module(struct drm_connector *connector) |
5242 | { | 5235 | { |
5243 | /* | 5236 | struct amdgpu_dm_connector *amdgpu_dm_connector = |
5244 | * TODO fill in once we figure out how to deal with freesync in | 5237 | to_amdgpu_dm_connector(connector); |
5245 | * an upstreamable fashion | 5238 | struct dm_connector_state *dm_con_state; |
5246 | */ | 5239 | struct drm_device *dev = connector->dev; |
5240 | struct amdgpu_device *adev = dev->dev_private; | ||
5241 | |||
5242 | if (!amdgpu_dm_connector->dc_sink || !adev->dm.freesync_module) { | ||
5243 | DRM_ERROR("dc_sink NULL or no free_sync module.\n"); | ||
5244 | return; | ||
5245 | } | ||
5246 | |||
5247 | if (!connector->state) { | ||
5248 | DRM_ERROR("%s - Connector has no state", __func__); | ||
5249 | return; | ||
5250 | } | ||
5251 | |||
5252 | dm_con_state = to_dm_connector_state(connector->state); | ||
5253 | |||
5254 | amdgpu_dm_connector->min_vfreq = 0; | ||
5255 | amdgpu_dm_connector->max_vfreq = 0; | ||
5256 | amdgpu_dm_connector->pixel_clock_mhz = 0; | ||
5257 | |||
5258 | memset(&amdgpu_dm_connector->caps, 0, sizeof(amdgpu_dm_connector->caps)); | ||
5259 | |||
5260 | dm_con_state->freesync_capable = false; | ||
5261 | |||
5262 | dm_con_state->user_enable.enable_for_gaming = false; | ||
5263 | dm_con_state->user_enable.enable_for_static = false; | ||
5264 | dm_con_state->user_enable.enable_for_video = false; | ||
5247 | } | 5265 | } |