From: Ricardo Neri <ricardo.neri@ti.com>
To: Archit Taneja <a0393947@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>,
s-guiriec@ti.com, linux-omap@vger.kernel.org
Subject: Re: [PATCH 0/2] OMAPDSS: DISPC: Improvements to DIGIT sync signal selection
Date: Mon, 30 Jul 2012 14:21:50 -0500 [thread overview]
Message-ID: <5016DECE.5000107@ti.com> (raw)
In-Reply-To: <50167487.9080703@ti.com>
Hi Tomi, Archit,
Thanks for your feedback.
On 07/30/2012 06:48 AM, Archit Taneja wrote:
> On Monday 30 July 2012 04:41 PM, Tomi Valkeinen wrote:
>> On Fri, 2012-07-27 at 19:21 -0500, Ricardo Neri wrote:
>>> Hello,
>>>
>>> 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 register as certain processors
>>> may not
>>> have VENC (e.g., OMAP5).
>>>
>>> These patches add logic to correctly set/get the sync signal based on
>>> the
>>> available displays in the DIGIT channel.
>>>
>>> For the HDMI driver, handle the error in the selection of the source.
>>
>> Is there an actual problem seen that this resolves? If so, It'd be nice
>> to have a brief description of the problem.
>
> The issue is seen on OMAP5 with a 3.5 kernel. In 3.5 kernel, we had a
> hack where we used to divide the TV manager's height by 2 if the
> connected interface was VENC. On OMAP5, the bit 15 returns VENC (a zero)
> irrespective of what we write.
>
> This won't happen in 3.6 as we have included interlace as a part of the
> omap_video_timings struct, and we don't try to check the bit to see
> whether we are VENC or HDMI.
>
> I guess we should still put a check to not set the bit on OMAP5 as it
> may cause unknown HW behavior, i.e, make the select function like:
>
> void dss_select_hdmi_venc_clk_source()
> {
> ...
>
> displays =
> dss_feat_get_supported_displays(OMAP_DSS_CHANNEL_DIGIT);
>
> if ((displays & OMAP_DISPLAY_TYPE_VENC) == 0)
> return;
>
> REG_FLD_MOD(DSS_CONTROL, src, 15, 15); /* VENC_HDMI_SWITCH */
> }
As Tomi mentions, perhaps this could be complemented with a BUG_ON could
be used if someone tries to use VENC as source when this is not available.
>
> Archit
>
>>
>> Does the bit 15 in DSS_CONTROL still exist on OMAP5? What does it return
>> on OMAP5?
>>
>> I think it's clear that dss_get_hdmi_venc_clk_source() needs to return a
>> correct value so that DSS operates correctly. But I'm not sure we need
>> the extra code in dss_select_hdmi_venc_clk_source().
Yes, the main purpose of these patch was to avoid blindly reading
DSS_CONTROL[15]. The additions to selection were just for completeness.
>>
>> dss_select_hdmi_venc_clk_source() should be called by venc or hdmi, and
>> there should be any possibility of using it in the wrong way. For extra
>> sanity checking there could be a BUG_ON() check in the
>> dss_select_hdmi_venc_clk_source() to point out if there's a bad bug in
>> venc or hdmi.
>>
>> I'd like to keep the lowest level dss-internal functions as simple as
>> possible, and written in the manner that they presume they are called
>> correctly. Otherwise we'll end up with lots of new code, checking for
>> errors that can never happen in practice.
Well, this was an error that happened in practice :).
I will resubmit based on these comments.
Thanks,
Ricardo
>>
>> Tomi
>>
>
prev parent reply other threads:[~2012-07-30 19:22 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 ` [PATCH 1/2] OMAPDSS: DISPC: Improve logic of selection of external sync signal Ricardo Neri
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 [this message]
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=5016DECE.5000107@ti.com \
--to=ricardo.neri@ti.com \
--cc=a0393947@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox