]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd: Add name to modes from amdgpu_connector_add_common_modes()
authorMario Limonciello <mario.limonciello@amd.com>
Wed, 24 Sep 2025 16:16:24 +0000 (11:16 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 25 Sep 2025 19:54:22 +0000 (15:54 -0400)
[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 <timur.kristof@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Link: https://lore.kernel.org/r/20250924161624.1975819-6-mario.limonciello@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c

index 0ab22b919da5430bfda1c48ee27dd46f2a191123..47e9bfba06424fc8d1b58585630c2f734df7f4c9 100644 (file)
@@ -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);
        }