All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: <tomi.valkeinen@ti.com>, <thierry.reding@gmail.com>, <airlied@linux.ie>
Cc: <daniel.vetter@ffwll.ch>, <dri-devel@lists.freedesktop.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v2 12/23] drm/omap: omap_display_timings: Use display_flags for h/vsync level
Date: Thu, 22 Sep 2016 14:06:57 +0300	[thread overview]
Message-ID: <20160922110708.31242-13-peter.ujfalusi@ti.com> (raw)
In-Reply-To: <20160922110708.31242-1-peter.ujfalusi@ti.com>

In preparation to move the stack to use the generic videmode struct for
display timing information use display_flags for h/vsync level.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 .../gpu/drm/omapdrm/displays/connector-analog-tv.c |  3 +-
 drivers/gpu/drm/omapdrm/displays/connector-dvi.c   |  4 +--
 drivers/gpu/drm/omapdrm/displays/connector-hdmi.c  |  3 +-
 .../omapdrm/displays/panel-lgphilips-lb035q02.c    |  4 +--
 .../drm/omapdrm/displays/panel-nec-nl8048hl11.c    |  4 +--
 .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c |  4 +--
 .../drm/omapdrm/displays/panel-sony-acx565akm.c    |  5 ++--
 .../drm/omapdrm/displays/panel-tpo-td028ttec1.c    |  5 ++--
 .../drm/omapdrm/displays/panel-tpo-td043mtea1.c    |  4 +--
 drivers/gpu/drm/omapdrm/dss/dispc.c                | 33 ++++++++--------------
 drivers/gpu/drm/omapdrm/dss/display.c              | 18 ++----------
 drivers/gpu/drm/omapdrm/dss/dsi.c                  |  6 ++--
 drivers/gpu/drm/omapdrm/dss/hdmi5_core.c           |  4 +--
 drivers/gpu/drm/omapdrm/dss/hdmi_wp.c              |  6 ++--
 drivers/gpu/drm/omapdrm/dss/omapdss.h              |  4 ---
 drivers/gpu/drm/omapdrm/dss/rfbi.c                 |  6 ++--
 drivers/gpu/drm/omapdrm/dss/venc.c                 | 10 +++----
 drivers/gpu/drm/omapdrm/omap_connector.c           | 12 ++++----
 18 files changed, 52 insertions(+), 83 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
index 0a7491427832..264182f97194 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
@@ -40,7 +40,8 @@ static const struct omap_video_timings tvc_pal_timings = {
 	.vfront_porch	= 5,
 	.vback_porch	= 41,
 
-	.flags		= DISPLAY_FLAGS_INTERLACED,
+	.flags		= DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
+			  DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 static const struct of_device_id tvc_of_match[];
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
index adbcd566a7ec..b81c366ba63a 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
@@ -33,11 +33,11 @@ static const struct omap_video_timings dvic_default_timings = {
 	.vsync_len	= 4,
 	.vback_porch	= 7,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_HIGH,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_HIGH,
 };
 
 struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
index 8e246b9142d7..f9809f4eb390 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
@@ -32,8 +32,7 @@ static const struct omap_video_timings hdmic_default_timings = {
 	.vfront_porch	= 11,
 	.vback_porch	= 31,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
index 9c114da37a6b..999dec6c2cff 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
@@ -33,11 +33,11 @@ static struct omap_video_timings lb035q02_timings = {
 	.vfront_porch	= 4,
 	.vback_porch	= 18,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
index b05ffd41244d..a3cb5c20ce9e 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
@@ -77,11 +77,11 @@ static const struct omap_video_timings nec_8048_panel_timings = {
 	.vsync_len	= 1,
 	.vback_porch	= 4,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 79cb8bde1cca..a83e6a1b894b 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -49,11 +49,11 @@ static const struct omap_video_timings sharp_ls_timings = {
 	.vfront_porch	= 1,
 	.vback_porch	= 1,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
index e243d32edfa5..a0c53ec38e5a 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
@@ -104,12 +104,11 @@ static const struct omap_video_timings acx565akm_panel_timings = {
 	.vsync_len	= 3,
 	.vback_porch	= 4,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
index a367b615d808..d98a16e8ce4a 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
@@ -53,12 +53,11 @@ static struct omap_video_timings td028ttec1_panel_timings = {
 	.vsync_len	= 2,
 	.vback_porch	= 2,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define JBT_COMMAND	0x000
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
index 16d24381b270..65eeda51dbef 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
@@ -86,11 +86,11 @@ static const struct omap_video_timings tpo_td043_timings = {
 	.vfront_porch	= 39,
 	.vback_porch	= 34,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
index e29f33fd19cd..234c68d8aaeb 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -3157,27 +3157,15 @@ static void _dispc_mgr_set_lcd_timings(enum omap_channel channel,
 	dispc_write_reg(DISPC_TIMING_H(channel), timing_h);
 	dispc_write_reg(DISPC_TIMING_V(channel), timing_v);
 
-	switch (ovt->vsync_level) {
-	case OMAPDSS_SIG_ACTIVE_LOW:
-		vs = true;
-		break;
-	case OMAPDSS_SIG_ACTIVE_HIGH:
+	if (ovt->flags & DISPLAY_FLAGS_VSYNC_HIGH)
 		vs = false;
-		break;
-	default:
-		BUG();
-	}
+	else
+		vs = true;
 
-	switch (ovt->hsync_level) {
-	case OMAPDSS_SIG_ACTIVE_LOW:
-		hs = true;
-		break;
-	case OMAPDSS_SIG_ACTIVE_HIGH:
+	if (ovt->flags & DISPLAY_FLAGS_HSYNC_HIGH)
 		hs = false;
-		break;
-	default:
-		BUG();
-	}
+	else
+		hs = true;
 
 	switch (ovt->de_level) {
 	case OMAPDSS_SIG_ACTIVE_LOW:
@@ -3277,8 +3265,9 @@ void dispc_mgr_set_timings(enum omap_channel channel,
 			t.hsync_len, t.hfront_porch, t.hback_porch,
 			t.vsync_len, t.vfront_porch, t.vback_porch);
 		DSSDBG("vsync_level %d hsync_level %d data_pclk_edge %d de_level %d sync_pclk_edge %d\n",
-			t.vsync_level, t.hsync_level, t.data_pclk_edge,
-			t.de_level, t.sync_pclk_edge);
+			!!(t.flags & DISPLAY_FLAGS_VSYNC_HIGH),
+			!!(t.flags & DISPLAY_FLAGS_HSYNC_HIGH),
+			t.data_pclk_edge, t.de_level, t.sync_pclk_edge);
 
 		DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt);
 	} else {
@@ -4220,12 +4209,12 @@ static const struct dispc_errata_i734_data {
 		.pixelclock = 16000000,
 		.hsync_len = 8, .hfront_porch = 4, .hback_porch = 4,
 		.vsync_len = 1, .vfront_porch = 1, .vback_porch = 1,
-		.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
-		.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
 		.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 		.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
 		.sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 		.double_pixel = false,
+
+		.flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 	},
 	.ovli = {
 		.screen_width = 1,
diff --git a/drivers/gpu/drm/omapdrm/dss/display.c b/drivers/gpu/drm/omapdrm/dss/display.c
index d63ea2d5d812..ddb5bbd41dfb 100644
--- a/drivers/gpu/drm/omapdrm/dss/display.c
+++ b/drivers/gpu/drm/omapdrm/dss/display.c
@@ -232,13 +232,8 @@ void videomode_to_omap_video_timings(const struct videomode *vm,
 	ovt->vback_porch = vm->vback_porch;
 	ovt->vfront_porch = vm->vfront_porch;
 	ovt->vsync_len = vm->vsync_len;
+	ovt->flags = vm->flags;
 
-	ovt->vsync_level = vm->flags & DISPLAY_FLAGS_VSYNC_HIGH ?
-		OMAPDSS_SIG_ACTIVE_HIGH :
-		OMAPDSS_SIG_ACTIVE_LOW;
-	ovt->hsync_level = vm->flags & DISPLAY_FLAGS_HSYNC_HIGH ?
-		OMAPDSS_SIG_ACTIVE_HIGH :
-		OMAPDSS_SIG_ACTIVE_LOW;
 	ovt->de_level = vm->flags & DISPLAY_FLAGS_DE_HIGH ?
 		OMAPDSS_SIG_ACTIVE_HIGH :
 		OMAPDSS_SIG_ACTIVE_LOW;
@@ -265,16 +260,7 @@ void omap_video_timings_to_videomode(const struct omap_video_timings *ovt,
 	vm->vback_porch = ovt->vback_porch;
 	vm->vfront_porch = ovt->vfront_porch;
 	vm->vsync_len = ovt->vsync_len;
-
-	if (ovt->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
-		vm->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
-	else
-		vm->flags |= DISPLAY_FLAGS_HSYNC_LOW;
-
-	if (ovt->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
-		vm->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
-	else
-		vm->flags |= DISPLAY_FLAGS_VSYNC_LOW;
+	vm->flags = ovt->flags;
 
 	if (ovt->de_level == OMAPDSS_SIG_ACTIVE_HIGH)
 		vm->flags |= DISPLAY_FLAGS_DE_HIGH;
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index 0d05ac9931a2..0117681973bb 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -4123,8 +4123,10 @@ static int dsi_display_init_dispc(struct platform_device *dsidev,
 	 * omap_video_timings with default values
 	 */
 	dsi->timings.flags &= ~DISPLAY_FLAGS_INTERLACED;
-	dsi->timings.hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
-	dsi->timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+	dsi->timings.flags &= ~DISPLAY_FLAGS_HSYNC_LOW;
+	dsi->timings.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
+	dsi->timings.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
+	dsi->timings.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
 	dsi->timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
 	dsi->timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
 	dsi->timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c b/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
index 62268f8d62c6..f64f389939d1 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
@@ -333,8 +333,8 @@ static void hdmi_core_video_config(struct hdmi_core_data *core,
 	unsigned char r = 0;
 	bool vsync_pol, hsync_pol;
 
-	vsync_pol = ovt->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
-	hsync_pol = ovt->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
+	vsync_pol = !!(ovt->flags & DISPLAY_FLAGS_VSYNC_HIGH);
+	hsync_pol = !!(ovt->flags & DISPLAY_FLAGS_HSYNC_HIGH);
 
 	/* Set hsync, vsync and data-enable polarity  */
 	r = hdmi_read_reg(base, HDMI_CORE_FC_INVIDCONF);
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c b/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
index 231f62ed86ff..b86e5a357456 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
@@ -150,8 +150,8 @@ void hdmi_wp_video_config_interface(struct hdmi_wp_data *wp,
 	bool vsync_pol, hsync_pol;
 	DSSDBG("Enter hdmi_wp_video_config_interface\n");
 
-	vsync_pol = timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
-	hsync_pol = timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
+	vsync_pol = !!(timings->flags & DISPLAY_FLAGS_VSYNC_HIGH);
+	hsync_pol = !!(timings->flags & DISPLAY_FLAGS_HSYNC_HIGH);
 
 	r = hdmi_read_reg(wp->base, HDMI_WP_VIDEO_CFG);
 	r = FLD_MOD(r, vsync_pol, 7, 7);
@@ -208,8 +208,6 @@ void hdmi_wp_init_vid_fmt_timings(struct hdmi_video_format *video_fmt,
 	timings->vfront_porch = param->timings.vfront_porch;
 	timings->vsync_len = param->timings.vsync_len;
 
-	timings->vsync_level = param->timings.vsync_level;
-	timings->hsync_level = param->timings.hsync_level;
 	timings->double_pixel = param->timings.double_pixel;
 	timings->flags = param->timings.flags;
 
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 23fec72bacac..23ab45447b0d 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -319,10 +319,6 @@ struct omap_video_timings {
 	/* Unit: line clocks */
 	u16 vback_porch;	/* Vertical back porch */
 
-	/* Vsync logic level */
-	enum omap_dss_signal_level vsync_level;
-	/* Hsync logic level */
-	enum omap_dss_signal_level hsync_level;
 	/* Pixel clock edge to drive LCD data */
 	enum omap_dss_signal_edge data_pclk_edge;
 	/* Data enable logic level */
diff --git a/drivers/gpu/drm/omapdrm/dss/rfbi.c b/drivers/gpu/drm/omapdrm/dss/rfbi.c
index d5639a5099c8..62f037ebfe6d 100644
--- a/drivers/gpu/drm/omapdrm/dss/rfbi.c
+++ b/drivers/gpu/drm/omapdrm/dss/rfbi.c
@@ -866,8 +866,10 @@ static void rfbi_config_lcd_manager(struct omap_dss_device *dssdev)
 	rfbi.timings.vback_porch = 0;
 
 	rfbi.timings.flags &= ~DISPLAY_FLAGS_INTERLACED;
-	rfbi.timings.hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
-	rfbi.timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+	rfbi.timings.flags &= ~DISPLAY_FLAGS_HSYNC_LOW;
+	rfbi.timings.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
+	rfbi.timings.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
+	rfbi.timings.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
 	rfbi.timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
 	rfbi.timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
 	rfbi.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
index e271c75ef632..e80ec809f0c7 100644
--- a/drivers/gpu/drm/omapdrm/dss/venc.c
+++ b/drivers/gpu/drm/omapdrm/dss/venc.c
@@ -273,13 +273,12 @@ const struct omap_video_timings omap_dss_pal_timings = {
 	.vfront_porch	= 5,
 	.vback_porch	= 41,
 
-	.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
-	.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 
-	.flags		= DISPLAY_FLAGS_INTERLACED,
+	.flags		= DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
+			  DISPLAY_FLAGS_VSYNC_LOW,
 };
 EXPORT_SYMBOL(omap_dss_pal_timings);
 
@@ -294,13 +293,12 @@ const struct omap_video_timings omap_dss_ntsc_timings = {
 	.vfront_porch	= 6,
 	.vback_porch	= 31,
 
-	.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
-	.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 
-	.flags		= DISPLAY_FLAGS_INTERLACED,
+	.flags		= DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
+			  DISPLAY_FLAGS_VSYNC_LOW,
 };
 EXPORT_SYMBOL(omap_dss_ntsc_timings);
 
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index 5effce40817f..695386256d18 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -65,12 +65,12 @@ void copy_timings_omap_to_drm(struct drm_display_mode *mode,
 	if (timings->double_pixel)
 		mode->flags |= DRM_MODE_FLAG_DBLCLK;
 
-	if (timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
+	if (timings->flags & DISPLAY_FLAGS_HSYNC_HIGH)
 		mode->flags |= DRM_MODE_FLAG_PHSYNC;
 	else
 		mode->flags |= DRM_MODE_FLAG_NHSYNC;
 
-	if (timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
+	if (timings->flags & DISPLAY_FLAGS_VSYNC_HIGH)
 		mode->flags |= DRM_MODE_FLAG_PVSYNC;
 	else
 		mode->flags |= DRM_MODE_FLAG_NVSYNC;
@@ -97,14 +97,14 @@ void copy_timings_drm_to_omap(struct omap_video_timings *timings,
 	timings->double_pixel = !!(mode->flags & DRM_MODE_FLAG_DBLCLK);
 
 	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
-		timings->hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+		timings->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
 	else
-		timings->hsync_level = OMAPDSS_SIG_ACTIVE_LOW;
+		timings->flags |= DISPLAY_FLAGS_HSYNC_LOW;
 
 	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
-		timings->vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+		timings->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
 	else
-		timings->vsync_level = OMAPDSS_SIG_ACTIVE_LOW;
+		timings->flags |= DISPLAY_FLAGS_VSYNC_LOW;
 
 	timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
 	timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-- 
2.10.0

WARNING: multiple messages have this Message-ID (diff)
From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: tomi.valkeinen@ti.com, thierry.reding@gmail.com, airlied@linux.ie
Cc: daniel.vetter@ffwll.ch, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 12/23] drm/omap: omap_display_timings: Use display_flags for h/vsync level
Date: Thu, 22 Sep 2016 14:06:57 +0300	[thread overview]
Message-ID: <20160922110708.31242-13-peter.ujfalusi@ti.com> (raw)
In-Reply-To: <20160922110708.31242-1-peter.ujfalusi@ti.com>

In preparation to move the stack to use the generic videmode struct for
display timing information use display_flags for h/vsync level.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 .../gpu/drm/omapdrm/displays/connector-analog-tv.c |  3 +-
 drivers/gpu/drm/omapdrm/displays/connector-dvi.c   |  4 +--
 drivers/gpu/drm/omapdrm/displays/connector-hdmi.c  |  3 +-
 .../omapdrm/displays/panel-lgphilips-lb035q02.c    |  4 +--
 .../drm/omapdrm/displays/panel-nec-nl8048hl11.c    |  4 +--
 .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c |  4 +--
 .../drm/omapdrm/displays/panel-sony-acx565akm.c    |  5 ++--
 .../drm/omapdrm/displays/panel-tpo-td028ttec1.c    |  5 ++--
 .../drm/omapdrm/displays/panel-tpo-td043mtea1.c    |  4 +--
 drivers/gpu/drm/omapdrm/dss/dispc.c                | 33 ++++++++--------------
 drivers/gpu/drm/omapdrm/dss/display.c              | 18 ++----------
 drivers/gpu/drm/omapdrm/dss/dsi.c                  |  6 ++--
 drivers/gpu/drm/omapdrm/dss/hdmi5_core.c           |  4 +--
 drivers/gpu/drm/omapdrm/dss/hdmi_wp.c              |  6 ++--
 drivers/gpu/drm/omapdrm/dss/omapdss.h              |  4 ---
 drivers/gpu/drm/omapdrm/dss/rfbi.c                 |  6 ++--
 drivers/gpu/drm/omapdrm/dss/venc.c                 | 10 +++----
 drivers/gpu/drm/omapdrm/omap_connector.c           | 12 ++++----
 18 files changed, 52 insertions(+), 83 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
index 0a7491427832..264182f97194 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
@@ -40,7 +40,8 @@ static const struct omap_video_timings tvc_pal_timings = {
 	.vfront_porch	= 5,
 	.vback_porch	= 41,
 
-	.flags		= DISPLAY_FLAGS_INTERLACED,
+	.flags		= DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
+			  DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 static const struct of_device_id tvc_of_match[];
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
index adbcd566a7ec..b81c366ba63a 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
@@ -33,11 +33,11 @@ static const struct omap_video_timings dvic_default_timings = {
 	.vsync_len	= 4,
 	.vback_porch	= 7,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_HIGH,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_HIGH,
 };
 
 struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
index 8e246b9142d7..f9809f4eb390 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
@@ -32,8 +32,7 @@ static const struct omap_video_timings hdmic_default_timings = {
 	.vfront_porch	= 11,
 	.vback_porch	= 31,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
index 9c114da37a6b..999dec6c2cff 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
@@ -33,11 +33,11 @@ static struct omap_video_timings lb035q02_timings = {
 	.vfront_porch	= 4,
 	.vback_porch	= 18,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
index b05ffd41244d..a3cb5c20ce9e 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
@@ -77,11 +77,11 @@ static const struct omap_video_timings nec_8048_panel_timings = {
 	.vsync_len	= 1,
 	.vback_porch	= 4,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 79cb8bde1cca..a83e6a1b894b 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -49,11 +49,11 @@ static const struct omap_video_timings sharp_ls_timings = {
 	.vfront_porch	= 1,
 	.vback_porch	= 1,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
index e243d32edfa5..a0c53ec38e5a 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
@@ -104,12 +104,11 @@ static const struct omap_video_timings acx565akm_panel_timings = {
 	.vsync_len	= 3,
 	.vback_porch	= 4,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
index a367b615d808..d98a16e8ce4a 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
@@ -53,12 +53,11 @@ static struct omap_video_timings td028ttec1_panel_timings = {
 	.vsync_len	= 2,
 	.vback_porch	= 2,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define JBT_COMMAND	0x000
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
index 16d24381b270..65eeda51dbef 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
@@ -86,11 +86,11 @@ static const struct omap_video_timings tpo_td043_timings = {
 	.vfront_porch	= 39,
 	.vback_porch	= 34,
 
-	.vsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
-	.hsync_level	= OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge	= OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 	.de_level	= OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge	= OMAPDSS_DRIVE_SIG_RISING_EDGE,
+
+	.flags		= DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
index e29f33fd19cd..234c68d8aaeb 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -3157,27 +3157,15 @@ static void _dispc_mgr_set_lcd_timings(enum omap_channel channel,
 	dispc_write_reg(DISPC_TIMING_H(channel), timing_h);
 	dispc_write_reg(DISPC_TIMING_V(channel), timing_v);
 
-	switch (ovt->vsync_level) {
-	case OMAPDSS_SIG_ACTIVE_LOW:
-		vs = true;
-		break;
-	case OMAPDSS_SIG_ACTIVE_HIGH:
+	if (ovt->flags & DISPLAY_FLAGS_VSYNC_HIGH)
 		vs = false;
-		break;
-	default:
-		BUG();
-	}
+	else
+		vs = true;
 
-	switch (ovt->hsync_level) {
-	case OMAPDSS_SIG_ACTIVE_LOW:
-		hs = true;
-		break;
-	case OMAPDSS_SIG_ACTIVE_HIGH:
+	if (ovt->flags & DISPLAY_FLAGS_HSYNC_HIGH)
 		hs = false;
-		break;
-	default:
-		BUG();
-	}
+	else
+		hs = true;
 
 	switch (ovt->de_level) {
 	case OMAPDSS_SIG_ACTIVE_LOW:
@@ -3277,8 +3265,9 @@ void dispc_mgr_set_timings(enum omap_channel channel,
 			t.hsync_len, t.hfront_porch, t.hback_porch,
 			t.vsync_len, t.vfront_porch, t.vback_porch);
 		DSSDBG("vsync_level %d hsync_level %d data_pclk_edge %d de_level %d sync_pclk_edge %d\n",
-			t.vsync_level, t.hsync_level, t.data_pclk_edge,
-			t.de_level, t.sync_pclk_edge);
+			!!(t.flags & DISPLAY_FLAGS_VSYNC_HIGH),
+			!!(t.flags & DISPLAY_FLAGS_HSYNC_HIGH),
+			t.data_pclk_edge, t.de_level, t.sync_pclk_edge);
 
 		DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt);
 	} else {
@@ -4220,12 +4209,12 @@ static const struct dispc_errata_i734_data {
 		.pixelclock = 16000000,
 		.hsync_len = 8, .hfront_porch = 4, .hback_porch = 4,
 		.vsync_len = 1, .vfront_porch = 1, .vback_porch = 1,
-		.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
-		.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
 		.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 		.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
 		.sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 		.double_pixel = false,
+
+		.flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 	},
 	.ovli = {
 		.screen_width = 1,
diff --git a/drivers/gpu/drm/omapdrm/dss/display.c b/drivers/gpu/drm/omapdrm/dss/display.c
index d63ea2d5d812..ddb5bbd41dfb 100644
--- a/drivers/gpu/drm/omapdrm/dss/display.c
+++ b/drivers/gpu/drm/omapdrm/dss/display.c
@@ -232,13 +232,8 @@ void videomode_to_omap_video_timings(const struct videomode *vm,
 	ovt->vback_porch = vm->vback_porch;
 	ovt->vfront_porch = vm->vfront_porch;
 	ovt->vsync_len = vm->vsync_len;
+	ovt->flags = vm->flags;
 
-	ovt->vsync_level = vm->flags & DISPLAY_FLAGS_VSYNC_HIGH ?
-		OMAPDSS_SIG_ACTIVE_HIGH :
-		OMAPDSS_SIG_ACTIVE_LOW;
-	ovt->hsync_level = vm->flags & DISPLAY_FLAGS_HSYNC_HIGH ?
-		OMAPDSS_SIG_ACTIVE_HIGH :
-		OMAPDSS_SIG_ACTIVE_LOW;
 	ovt->de_level = vm->flags & DISPLAY_FLAGS_DE_HIGH ?
 		OMAPDSS_SIG_ACTIVE_HIGH :
 		OMAPDSS_SIG_ACTIVE_LOW;
@@ -265,16 +260,7 @@ void omap_video_timings_to_videomode(const struct omap_video_timings *ovt,
 	vm->vback_porch = ovt->vback_porch;
 	vm->vfront_porch = ovt->vfront_porch;
 	vm->vsync_len = ovt->vsync_len;
-
-	if (ovt->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
-		vm->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
-	else
-		vm->flags |= DISPLAY_FLAGS_HSYNC_LOW;
-
-	if (ovt->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
-		vm->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
-	else
-		vm->flags |= DISPLAY_FLAGS_VSYNC_LOW;
+	vm->flags = ovt->flags;
 
 	if (ovt->de_level == OMAPDSS_SIG_ACTIVE_HIGH)
 		vm->flags |= DISPLAY_FLAGS_DE_HIGH;
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index 0d05ac9931a2..0117681973bb 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -4123,8 +4123,10 @@ static int dsi_display_init_dispc(struct platform_device *dsidev,
 	 * omap_video_timings with default values
 	 */
 	dsi->timings.flags &= ~DISPLAY_FLAGS_INTERLACED;
-	dsi->timings.hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
-	dsi->timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+	dsi->timings.flags &= ~DISPLAY_FLAGS_HSYNC_LOW;
+	dsi->timings.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
+	dsi->timings.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
+	dsi->timings.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
 	dsi->timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
 	dsi->timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
 	dsi->timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c b/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
index 62268f8d62c6..f64f389939d1 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
@@ -333,8 +333,8 @@ static void hdmi_core_video_config(struct hdmi_core_data *core,
 	unsigned char r = 0;
 	bool vsync_pol, hsync_pol;
 
-	vsync_pol = ovt->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
-	hsync_pol = ovt->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
+	vsync_pol = !!(ovt->flags & DISPLAY_FLAGS_VSYNC_HIGH);
+	hsync_pol = !!(ovt->flags & DISPLAY_FLAGS_HSYNC_HIGH);
 
 	/* Set hsync, vsync and data-enable polarity  */
 	r = hdmi_read_reg(base, HDMI_CORE_FC_INVIDCONF);
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c b/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
index 231f62ed86ff..b86e5a357456 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
@@ -150,8 +150,8 @@ void hdmi_wp_video_config_interface(struct hdmi_wp_data *wp,
 	bool vsync_pol, hsync_pol;
 	DSSDBG("Enter hdmi_wp_video_config_interface\n");
 
-	vsync_pol = timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
-	hsync_pol = timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH;
+	vsync_pol = !!(timings->flags & DISPLAY_FLAGS_VSYNC_HIGH);
+	hsync_pol = !!(timings->flags & DISPLAY_FLAGS_HSYNC_HIGH);
 
 	r = hdmi_read_reg(wp->base, HDMI_WP_VIDEO_CFG);
 	r = FLD_MOD(r, vsync_pol, 7, 7);
@@ -208,8 +208,6 @@ void hdmi_wp_init_vid_fmt_timings(struct hdmi_video_format *video_fmt,
 	timings->vfront_porch = param->timings.vfront_porch;
 	timings->vsync_len = param->timings.vsync_len;
 
-	timings->vsync_level = param->timings.vsync_level;
-	timings->hsync_level = param->timings.hsync_level;
 	timings->double_pixel = param->timings.double_pixel;
 	timings->flags = param->timings.flags;
 
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 23fec72bacac..23ab45447b0d 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -319,10 +319,6 @@ struct omap_video_timings {
 	/* Unit: line clocks */
 	u16 vback_porch;	/* Vertical back porch */
 
-	/* Vsync logic level */
-	enum omap_dss_signal_level vsync_level;
-	/* Hsync logic level */
-	enum omap_dss_signal_level hsync_level;
 	/* Pixel clock edge to drive LCD data */
 	enum omap_dss_signal_edge data_pclk_edge;
 	/* Data enable logic level */
diff --git a/drivers/gpu/drm/omapdrm/dss/rfbi.c b/drivers/gpu/drm/omapdrm/dss/rfbi.c
index d5639a5099c8..62f037ebfe6d 100644
--- a/drivers/gpu/drm/omapdrm/dss/rfbi.c
+++ b/drivers/gpu/drm/omapdrm/dss/rfbi.c
@@ -866,8 +866,10 @@ static void rfbi_config_lcd_manager(struct omap_dss_device *dssdev)
 	rfbi.timings.vback_porch = 0;
 
 	rfbi.timings.flags &= ~DISPLAY_FLAGS_INTERLACED;
-	rfbi.timings.hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
-	rfbi.timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+	rfbi.timings.flags &= ~DISPLAY_FLAGS_HSYNC_LOW;
+	rfbi.timings.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
+	rfbi.timings.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
+	rfbi.timings.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
 	rfbi.timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
 	rfbi.timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
 	rfbi.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
index e271c75ef632..e80ec809f0c7 100644
--- a/drivers/gpu/drm/omapdrm/dss/venc.c
+++ b/drivers/gpu/drm/omapdrm/dss/venc.c
@@ -273,13 +273,12 @@ const struct omap_video_timings omap_dss_pal_timings = {
 	.vfront_porch	= 5,
 	.vback_porch	= 41,
 
-	.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
-	.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 
-	.flags		= DISPLAY_FLAGS_INTERLACED,
+	.flags		= DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
+			  DISPLAY_FLAGS_VSYNC_LOW,
 };
 EXPORT_SYMBOL(omap_dss_pal_timings);
 
@@ -294,13 +293,12 @@ const struct omap_video_timings omap_dss_ntsc_timings = {
 	.vfront_porch	= 6,
 	.vback_porch	= 31,
 
-	.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
-	.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
 	.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 	.de_level = OMAPDSS_SIG_ACTIVE_HIGH,
 	.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 
-	.flags		= DISPLAY_FLAGS_INTERLACED,
+	.flags		= DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
+			  DISPLAY_FLAGS_VSYNC_LOW,
 };
 EXPORT_SYMBOL(omap_dss_ntsc_timings);
 
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index 5effce40817f..695386256d18 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -65,12 +65,12 @@ void copy_timings_omap_to_drm(struct drm_display_mode *mode,
 	if (timings->double_pixel)
 		mode->flags |= DRM_MODE_FLAG_DBLCLK;
 
-	if (timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
+	if (timings->flags & DISPLAY_FLAGS_HSYNC_HIGH)
 		mode->flags |= DRM_MODE_FLAG_PHSYNC;
 	else
 		mode->flags |= DRM_MODE_FLAG_NHSYNC;
 
-	if (timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
+	if (timings->flags & DISPLAY_FLAGS_VSYNC_HIGH)
 		mode->flags |= DRM_MODE_FLAG_PVSYNC;
 	else
 		mode->flags |= DRM_MODE_FLAG_NVSYNC;
@@ -97,14 +97,14 @@ void copy_timings_drm_to_omap(struct omap_video_timings *timings,
 	timings->double_pixel = !!(mode->flags & DRM_MODE_FLAG_DBLCLK);
 
 	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
-		timings->hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+		timings->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
 	else
-		timings->hsync_level = OMAPDSS_SIG_ACTIVE_LOW;
+		timings->flags |= DISPLAY_FLAGS_HSYNC_LOW;
 
 	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
-		timings->vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+		timings->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
 	else
-		timings->vsync_level = OMAPDSS_SIG_ACTIVE_LOW;
+		timings->flags |= DISPLAY_FLAGS_VSYNC_LOW;
 
 	timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
 	timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-- 
2.10.0

  parent reply	other threads:[~2016-09-22 11:10 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-22 11:06 [PATCH v2 00/23] drm/omap: Convert to use videomode from omap_video_timings Peter Ujfalusi
2016-09-22 11:06 ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 01/23] drm/omap: omap_display_timings: rename x_res to hactive Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 02/23] drm/omap: omap_display_timings: rename y_res to vactive Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 03/23] drm/omap: omap_display_timings: rename hsw to hsync_len Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 04/23] drm/omap: omap_display_timings: rename hfp to hfront_porch Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 05/23] drm/omap: omap_display_timings: rename hbp to hback_porch Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 06/23] drm/omap: omap_display_timings: rename vsw to vsync_len Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 07/23] drm/omap: omap_display_timings: rename vfp to vfront_porch Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 08/23] drm/omap: omap_display_timings: rename vbp to vback_porch Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 09/23] drm/omap: HDMI5: Use pointer to cfg->v_fc_config.timings in hdmi_core_video_config Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 10/23] drm/omap: omap_display_timings: Use display_flags for interlace mode Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 11/23] drm/omap: dispc: Simplify _dispc_mgr_set_lcd_timings() parameters Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` Peter Ujfalusi [this message]
2016-09-22 11:06   ` [PATCH v2 12/23] drm/omap: omap_display_timings: Use display_flags for h/vsync level Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 13/23] drm/omap: omap_display_timings: Use display_flags for DE level Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:06 ` [PATCH v2 14/23] drm/omap: omap_display_timings: Use display_flags for double_pixel mode Peter Ujfalusi
2016-09-22 11:06   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 15/23] drm/omap: omap_display_timings: Use display_flags for pixel data edge Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 16/23] drm/omap: omap_display_timings: Use display_flags for sync edge Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 17/23] drm/omap: Change the types of struct omap_video_timings members Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 18/23] drm/omap: Replace struct omap_video_timings with videomode Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 19/23] drm/omap: Use consistent name for struct videomode Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 20/23] drm/omap: panel-tpo-td043mtea1: Add note for incorrect sync drive edge Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 21/23] drm/omap: panel-tpo-td028ttec1: " Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 22/23] drm/omap: panel-sharp-ls037v7dw01: Add note for incorrect data " Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-22 11:07 ` [PATCH v2 23/23] drm/omap: panel-lgphilips-lb035q02: Add note for incorrect data drive edge and DE level Peter Ujfalusi
2016-09-22 11:07   ` Peter Ujfalusi
2016-09-29 11:34 ` [PATCH v2 00/23] drm/omap: Convert to use videomode from omap_video_timings Tomi Valkeinen
2016-09-29 11:34   ` Tomi Valkeinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160922110708.31242-13-peter.ujfalusi@ti.com \
    --to=peter.ujfalusi@ti.com \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.