[Why]
When DC adds common modes it adds modes with a string to match what
they are. Non-DC doesn't. This can be inconsistent when turning on/off
DC support.

[How]
Add a name member to common_modes[] and copy it into the drm display
mode.

Cc: Timur Kristóf <[email protected]>
Signed-off-by: Mario Limonciello <[email protected]>
---
 .../gpu/drm/amd/amdgpu/amdgpu_connectors.c    | 26 ++++++++++---------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index 8c085ed703dd..120d8017b6f4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -399,21 +399,22 @@ static void amdgpu_connector_add_common_modes(struct 
drm_encoder *encoder,
        struct drm_display_mode *native_mode = &amdgpu_encoder->native_mode;
        int i;
        int n;
-       static const struct mode_size {
+       struct mode_size {
+               char name[DRM_DISPLAY_MODE_LEN];
                int w;
                int h;
        } common_modes[] = {
-               { 640,  480},
-               { 800,  600},
-               {1024,  768},
-               {1280,  720},
-               {1280,  800},
-               {1280, 1024},
-               {1440,  900},
-               {1680, 1050},
-               {1600, 1200},
-               {1920, 1080},
-               {1920, 1200}
+               {  "640x480",  640,  480},
+               {  "800x600",  800,  600},
+               { "1024x768", 1024,  768},
+               { "1280x720", 1280,  720},
+               { "1280x800", 1280,  800},
+               {"1280x1024", 1280, 1024},
+               { "1440x900", 1440,  900},
+               {"1680x1050", 1680, 1050},
+               {"1600x1200", 1600, 1200},
+               {"1920x1080", 1920, 1080},
+               {"1920x1200", 1920, 1200}
        };
 
        n = ARRAY_SIZE(common_modes);
@@ -435,6 +436,7 @@ static void amdgpu_connector_add_common_modes(struct 
drm_encoder *encoder,
                mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, 
60, false, false, false);
                if (!mode)
                        return;
+               strscpy(mode->name, common_modes[i].name, DRM_DISPLAY_MODE_LEN);
 
                drm_mode_probed_add(connector, mode);
        }
-- 
2.51.0

Reply via email to