All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Neri <ricardo.neri@ti.com>
To: tomi.valkeinen@ti.com
Cc: archit@ti.com, s-guiriec@ti.com, linux-omap@vger.kernel.org,
	Ricardo Neri <ricardo.neri@ti.com>
Subject: [PATCH 1/2] OMAPDSS: DISPC: Improve logic of selection of external sync signal
Date: Fri, 27 Jul 2012 19:21:36 -0500	[thread overview]
Message-ID: <1343434897-8444-2-git-send-email-ricardo.neri@ti.com> (raw)
In-Reply-To: <1343434897-8444-1-git-send-email-ricardo.neri@ti.com>

The DIGIT channel of the display controller can take the external sync
signal from VENC or HDMI. The code was wrongly assuming that VENC was always
available, which is not necessarily true (e.g., OMAP5). Now, first verify if
the requested external source sync signal is available before getting/setting
the source.

Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
---
 drivers/video/omap2/dss/dss.c |   19 +++++++++++++++++--
 drivers/video/omap2/dss/dss.h |    2 +-
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 04b4586..e399b4f 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -648,9 +648,21 @@ void dss_set_dac_pwrdn_bgz(bool enable)
 	REG_FLD_MOD(DSS_CONTROL, enable, 5, 5);	/* DAC Power-Down Control */
 }
 
-void dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select hdmi)
+int dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select src)
 {
-	REG_FLD_MOD(DSS_CONTROL, hdmi, 15, 15);	/* VENC_HDMI_SWITCH */
+	enum omap_display_type displays;
+
+	displays = dss_feat_get_supported_displays(OMAP_DSS_CHANNEL_DIGIT);
+
+	/* discard invalid cases */
+	if (src == DSS_VENC_TV_CLK && !(displays & OMAP_DISPLAY_TYPE_VENC))
+		return -EINVAL;
+
+	if (src == DSS_HDMI_M_PCLK && !(displays & OMAP_DISPLAY_TYPE_HDMI))
+		return -EINVAL;
+
+	REG_FLD_MOD(DSS_CONTROL, src, 15, 15);	/* VENC_HDMI_SWITCH */
+	return 0;
 }
 
 enum dss_hdmi_venc_clk_source_select dss_get_hdmi_venc_clk_source(void)
@@ -661,6 +673,9 @@ enum dss_hdmi_venc_clk_source_select dss_get_hdmi_venc_clk_source(void)
 	if ((displays & OMAP_DISPLAY_TYPE_HDMI) == 0)
 		return DSS_VENC_TV_CLK;
 
+	if ((displays & OMAP_DISPLAY_TYPE_VENC) == 0)
+		return DSS_HDMI_M_PCLK;
+
 	return REG_GET(DSS_CONTROL, 15, 15);
 }
 
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index f67afe7..7ae763c 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -270,7 +270,7 @@ bool dss_ovl_use_replication(struct dss_lcd_mgr_config config,
 int dss_init_platform_driver(void) __init;
 void dss_uninit_platform_driver(void);
 
-void dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select);
+int dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select);
 enum dss_hdmi_venc_clk_source_select dss_get_hdmi_venc_clk_source(void);
 const char *dss_get_generic_clk_source_name(enum omap_dss_clk_source clk_src);
 void dss_dump_clocks(struct seq_file *s);
-- 
1.7.5.4


  reply	other threads:[~2012-07-28  0:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-28  0:21 [PATCH 0/2] OMAPDSS: DISPC: Improvements to DIGIT sync signal selection Ricardo Neri
2012-07-28  0:21 ` Ricardo Neri [this message]
2012-07-28  0:21 ` [PATCH 2/2] OMAPDSS:HDMI: Improve error handling at power on Ricardo Neri
2012-07-30 11:11 ` [PATCH 0/2] OMAPDSS: DISPC: Improvements to DIGIT sync signal selection Tomi Valkeinen
2012-07-30 11:48   ` Archit Taneja
2012-07-30 19:21     ` Ricardo Neri

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=1343434897-8444-2-git-send-email-ricardo.neri@ti.com \
    --to=ricardo.neri@ti.com \
    --cc=archit@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=s-guiriec@ti.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.