Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb06ca8f authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms: properly handle mode id with native mode changes



drm modes are objects with indentifiers.  Make sure to preserve
the mode id when copying mode params.

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 39deb2d6
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -183,8 +183,7 @@ static struct drm_display_mode *radeon_fp_native_mode(struct drm_encoder *encode
	if (native_mode->hdisplay != 0 &&
	    native_mode->vdisplay != 0 &&
	    native_mode->clock != 0) {
		mode = drm_mode_create(dev);
		*mode = *native_mode;
		mode = drm_mode_duplicate(dev, native_mode);
		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
		drm_mode_set_name(mode);

+2 −0
Original line number Diff line number Diff line
@@ -175,11 +175,13 @@ void radeon_rmx_mode_fixup(struct drm_encoder *encoder,

	if (mode->hdisplay < native_mode->hdisplay ||
	    mode->vdisplay < native_mode->vdisplay) {
		int mode_id = adjusted_mode->base.id;
		*adjusted_mode = *native_mode;
		if (!ASIC_IS_AVIVO(rdev)) {
			adjusted_mode->hdisplay = mode->hdisplay;
			adjusted_mode->vdisplay = mode->vdisplay;
		}
		adjusted_mode->base.id = mode_id;
	}
}