[RFC PATCH 10/37] drm: armada: Use crtc->hwmode for adjusted mode

Daniel Stone daniels at collabora.com
Wed Mar 18 21:33:09 PDT 2015


crtc->hwmode contains the adjusted_mode from mode_set; no reason to
overwrite crtc->mode (the user-specified mode) with this anymore.

Signed-off-by: Daniel Stone <daniels at collabora.com>
---
 drivers/gpu/drm/armada/armada_crtc.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c
index 42d2ffa..c74faf9 100644
--- a/drivers/gpu/drm/armada/armada_crtc.c
+++ b/drivers/gpu/drm/armada/armada_crtc.c
@@ -133,11 +133,11 @@ static void armada_drm_crtc_update(struct armada_crtc *dcrtc)
 	 * The non-inverted state of the sync signals is active high.
 	 * Setting these bits makes the appropriate signal active low.
 	 */
-	if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NCSYNC)
+	if (dcrtc->crtc.hwmode.flags & DRM_MODE_FLAG_NCSYNC)
 		dumb_ctrl |= CFG_INV_CSYNC;
-	if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NHSYNC)
+	if (dcrtc->crtc.hwmode.flags & DRM_MODE_FLAG_NHSYNC)
 		dumb_ctrl |= CFG_INV_HSYNC;
-	if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NVSYNC)
+	if (dcrtc->crtc.hwmode.flags & DRM_MODE_FLAG_NVSYNC)
 		dumb_ctrl |= CFG_INV_VSYNC;
 
 	if (dcrtc->dumb_ctrl != dumb_ctrl) {
@@ -457,7 +457,7 @@ void armada_drm_crtc_enable_irq(struct armada_crtc *dcrtc, u32 mask)
 
 static uint32_t armada_drm_crtc_calculate_csc(struct armada_crtc *dcrtc)
 {
-	struct drm_display_mode *adj = &dcrtc->crtc.mode;
+	struct drm_display_mode *adj = &dcrtc->crtc.hwmode;
 	uint32_t val = 0;
 
 	if (dcrtc->csc_yuv_mode == CSC_YUV_CCIR709)
@@ -531,8 +531,6 @@ static int armada_drm_crtc_mode_set(struct drm_crtc *crtc,
 
 	drm_crtc_vblank_off(crtc);
 
-	crtc->mode = *adj;
-
 	val = dcrtc->dumb_ctrl & ~CFG_DUMB_ENA;
 	if (val != dcrtc->dumb_ctrl) {
 		dcrtc->dumb_ctrl = val;
@@ -735,10 +733,10 @@ static int armada_drm_crtc_cursor_update(struct armada_crtc *dcrtc, bool reload)
 		xoff = -dcrtc->cursor_x;
 		xscr = 0;
 		w -= min(xoff, w);
-	} else if (dcrtc->cursor_x + w > dcrtc->crtc.mode.hdisplay) {
+	} else if (dcrtc->cursor_x + w > dcrtc->crtc.hwmode.hdisplay) {
 		xoff = 0;
 		xscr = dcrtc->cursor_x;
-		w = max_t(int, dcrtc->crtc.mode.hdisplay - dcrtc->cursor_x, 0);
+		w = max_t(int, dcrtc->crtc.hwmode.hdisplay - dcrtc->cursor_x, 0);
 	} else {
 		xoff = 0;
 		xscr = dcrtc->cursor_x;
@@ -748,10 +746,10 @@ static int armada_drm_crtc_cursor_update(struct armada_crtc *dcrtc, bool reload)
 		yoff = -dcrtc->cursor_y;
 		yscr = 0;
 		h -= min(yoff, h);
-	} else if (dcrtc->cursor_y + h > dcrtc->crtc.mode.vdisplay) {
+	} else if (dcrtc->cursor_y + h > dcrtc->crtc.hwmode.vdisplay) {
 		yoff = 0;
 		yscr = dcrtc->cursor_y;
-		h = max_t(int, dcrtc->crtc.mode.vdisplay - dcrtc->cursor_y, 0);
+		h = max_t(int, dcrtc->crtc.hwmode.vdisplay - dcrtc->cursor_y, 0);
 	} else {
 		yoff = 0;
 		yscr = dcrtc->cursor_y;
-- 
2.3.2



More information about the dri-devel mailing list