> ?}; > diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > index de81883..2d9a0e6 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > @@ -249,7 +249,11 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct > drm_display_mode *mode, > ?{ > ? ? ? ?DRM_DEBUG_KMS("%s\n", __FILE__); > > - ? ? ? mode = adjusted_mode; > + ? ? ? /* > + ? ? ? ?* copy the mode data adjusted by mode_fixup() into crtc->mode > + ? ? ? ?* so that hardware can be seet to proper mode. > + ? ? ? ?*/ > + ? ? ? memcpy(&crtc->mode, adjusted_mode, sizeof(*adjusted_mode));
This just seems wrong on lots of levels, if you get an error how are you going to fallback? You should be passing the modes into the crtc_update function and doing things like other drivers here. Dave.