drm/amd/display: Don't access legacy properties
authorHarry Wentland <harry.wentland@amd.com>
Tue, 17 Oct 2017 16:02:01 +0000 (12:02 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Apr 2018 18:08:02 +0000 (13:08 -0500)
We're an atomic driver and shouldn't access legacy properties. Doing so
will only scare users with stack traces.

Instead save the prop in the state and access it directly. Much simpler.

Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@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/amdgpu_dm/amdgpu_dm.h

index fbde450..7483947 100644 (file)
@@ -5118,17 +5118,24 @@ void amdgpu_dm_add_sink_to_freesync_module(struct drm_connector *connector,
                                           struct edid *edid)
 {
        int i;
-       uint64_t val_capable;
        bool edid_check_required;
        struct detailed_timing *timing;
        struct detailed_non_pixel *data;
        struct detailed_data_monitor_range *range;
        struct amdgpu_dm_connector *amdgpu_dm_connector =
                        to_amdgpu_dm_connector(connector);
+       struct dm_connector_state *dm_con_state;
 
        struct drm_device *dev = connector->dev;
        struct amdgpu_device *adev = dev->dev_private;
 
+       if (!connector->state) {
+               DRM_ERROR("%s - Connector has no state", __func__);
+               return;
+       }
+
+       dm_con_state = to_dm_connector_state(connector->state);
+
        edid_check_required = false;
        if (!amdgpu_dm_connector->dc_sink) {
                DRM_ERROR("dc_sink NULL, could not add free_sync module.\n");
@@ -5147,7 +5154,7 @@ void amdgpu_dm_add_sink_to_freesync_module(struct drm_connector *connector,
                                                amdgpu_dm_connector);
                }
        }
-       val_capable = 0;
+       dm_con_state->freesync_capable = false;
        if (edid_check_required == true && (edid->version > 1 ||
           (edid->version == 1 && edid->revision > 1))) {
                for (i = 0; i < 4; i++) {
@@ -5183,7 +5190,7 @@ void amdgpu_dm_add_sink_to_freesync_module(struct drm_connector *connector,
                                        amdgpu_dm_connector->min_vfreq * 1000000;
                        amdgpu_dm_connector->caps.max_refresh_in_micro_hz =
                                        amdgpu_dm_connector->max_vfreq * 1000000;
-                               val_capable = 1;
+                       dm_con_state->freesync_capable = true;
                }
        }
 
index 3af699b..005cf0d 100644 (file)
@@ -220,6 +220,7 @@ struct dm_connector_state {
        uint8_t underscan_hborder;
        bool underscan_enable;
        struct mod_freesync_user_enable user_enable;
+       bool freesync_capable;
 };
 
 #define to_dm_connector_state(x)\