All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Ricardo Neri <ricardo.neri@ti.com>
Cc: archit@ti.com, s-guiriec@ti.com, linux-omap@vger.kernel.org
Subject: Re: [PATCH v2] OMAPDSS: DISPC: Improve DIGIT channel sync signal selection
Date: Tue, 31 Jul 2012 08:46:11 +0300	[thread overview]
Message-ID: <1343713571.4685.6.camel@lappyti> (raw)
In-Reply-To: <1343693484-26133-1-git-send-email-ricardo.neri@ti.com>

[-- Attachment #1: Type: text/plain, Size: 1990 bytes --]

On Mon, 2012-07-30 at 19:11 -0500, Ricardo Neri wrote:
> DSS code wrongly assumes that VENC is always available as source for the external
> sync signal for the display controller DIGIT channel. One cannot blindly
> rely only on the value of DSS_CONTROL[15] as on certain processors (e.g., OMAP5)
> reading/writing on that bit may not be valid. If the the sync source is not read
> correctly, the callers of dss_get_hdmi_venc_clk_source might make wrong assumptions
> about, for instance, video timings.
> 
> This patch adds logic to correctly get the sync signal based on the
> available displays in the DIGIT channel. A kernel BUG is thrown if an
> invalid source is selected.
> 
> Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
> ---
> v2: use BUG_ON() to simplify handling of invalid cases.
>  drivers/video/omap2/dss/dss.c |   13 +++++++++++--
>  1 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
> index 04b4586..2f8e4b6 100644
> --- a/drivers/video/omap2/dss/dss.c
> +++ b/drivers/video/omap2/dss/dss.c
> @@ -648,9 +648,15 @@ 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)
> +void 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 dp;
> +	dp = dss_feat_get_supported_displays(OMAP_DSS_CHANNEL_DIGIT);
> +
> +	BUG_ON((src == DSS_VENC_TV_CLK) && !(dp & OMAP_DISPLAY_TYPE_VENC));
> +	BUG_ON((src == DSS_HDMI_M_PCLK) && !(dp & OMAP_DISPLAY_TYPE_HDMI));
> +
> +	REG_FLD_MOD(DSS_CONTROL, src, 15, 15);	/* VENC_HDMI_SWITCH */
>  }

This one will still write to the reserved bit 15 on OMAP5.

Perhaps we could check if both VENC and HDMI are supported, and if not,
return.

 Tomi


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2012-07-31  5:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-31  0:11 [PATCH v2] OMAPDSS: DISPC: Improve DIGIT channel sync signal selection Ricardo Neri
2012-07-31  5:46 ` Tomi Valkeinen [this message]
2012-07-31 23:49   ` 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=1343713571.4685.6.camel@lappyti \
    --to=tomi.valkeinen@ti.com \
    --cc=archit@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=ricardo.neri@ti.com \
    --cc=s-guiriec@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.