From: Thierry Reding <thierry.reding@gmail.com>
To: YoungJun Cho <yj44.cho@samsung.com>
Cc: airlied@linux.ie, dri-devel@lists.freedesktop.org,
devicetree@vger.kernel.org, robh+dt@kernel.org,
pawel.moll@arm.com, mark.rutland@arm.com,
ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
linux-samsung-soc@vger.kernel.org, kyungmin.park@samsung.com,
inki.dae@samsung.com, kgene.kim@samsung.com,
jy0922.shim@samsung.com, sw0312.kim@samsung.com,
a.hajda@samsung.com
Subject: Re: [PATCH v5 05/14] drm/exynos: dsi: add pass TE host ops to support LCD I80 interface
Date: Mon, 14 Jul 2014 13:03:27 +0200 [thread overview]
Message-ID: <20140714110326.GA31460@ulmo> (raw)
In-Reply-To: <53C3B4C8.1070601@samsung.com>
[-- Attachment #1: Type: text/plain, Size: 3919 bytes --]
On Mon, Jul 14, 2014 at 07:45:28PM +0900, YoungJun Cho wrote:
> On 07/14/2014 06:41 PM, Thierry Reding wrote:
[...]
> >That said, I've been doing some research and it seems like we have a
> >somewhat similar feature on Tegra. What happens there is that there are
> >three GPIO pins that can be repurposed for TE signalling. But as opposed
> >to using them as interrupts the display controller can be configured to
> >use them, upon which it will automatically handle the TE signal by
> >sending the next frame.
>
> Could you explain more detail how the Tegra display controller could be
> configured with this GPIO pins?
> I have no idea except that the display controller registers this GPIO as an
> IRQ.
On Tegra the display controller has a special register that can be
programmed to use one of the three GPIOs as TE signal. Then the display
controller can be configured in one-shot (non-continuous) mode, which
means that software needs to explicitly set a trigger bit to tell the
display controller to send a new frame. If TE signalling is enabled,
then the display controller will not immediately send a new frame when
triggered but wait for signalling of this GPIO.
> >So we have at least two very different implementations of this on two
> >different SoCs. Further the specification explicitly recommends using
> >the BTA sequence and DSI protocol to wait for TE. So I still think that
> >controllers that provide an additional, non-spec compliant method to
> >signal TE should handle it separately rather than within DSI. Otherwise
> >we essentially need to make the DSI "core" aware of all these quirks,
> >and I'd rather avoid that.
>
> You mean, the DSI specification guides to use BTA, so it's better to use
> display controller rather than DSIM, right?
What I'm saying is that there's nothing about a side-band TE wire in the
DSI spec. In fact the spec explicitly says that this mechanism of an
external TE wire from older protocols (DBI) was replaced by the BTA
sequence over the protocol.
Now, my understanding is that using the BTA sequence over the DSI
protocol would introduce some latency and that forces some panel vendors
to still provide a side-band TE wire even in DSI compliant panels. But
since this is not part of the specification there is no standard way to
do this (as evidenced by Tegra and Exynos). Therefore putting such
functionality into the core DSI code is bad.
But that doesn't mean that you have to put this functionality into the
display controller driver on Exynos. What I'm saying is that it should
be handled by the SoC driver rather than the core. Where exactly
probably depends on the particular case.
> >>As Inki commented before, I'll try to use remote-endpoint property of DSI
> >>device node in exynos DSIM driver and call FIMD notifier.
> >
> >Sounds like it matches what I said above. I'm not a huge fan of
> >notifiers, but if it works for you I suppose that's fine. The
> >alternative would be to directly call a FIMD function, which is
> >somewhat more explicit than a notifier.
>
> Yes, I also like explicit call, so I want to use dsi_host_ops and calls it
> in panel. But there is an objection to use dis_host_ops, we think notifier
> in exynos dsim for fimd(display controller).
There are other ways to explicitly call into the display controller. You
could for example get access to the CRTC that DSIM is currently
connected to (via exynos_dsi.encoder->crtc) and then cast that to a
struct exynos_drm_crtc and call a function to trigger a new frame to be
sent (for example exynos_drm_crtc_send_frame()). This assumes that you
can safely cast struct drm_crtc * to struct exynos_drm_crtc *, but that
shouldn't be a problem.
With the above, you could make the DSIM handle the TE signal interrupts
and trigger the DC using the new exynos_drm_crtc_send_frame() function.
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-07-14 11:03 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-08 0:39 [PATCH v5 00/14] drm/exynos: support LCD I80 interface display YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 01/14] drm/exynos: dsi: move the EoT packets configuration point YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 02/14] drm/exynos: use wait_event_timeout() for safety usage YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 03/14] ARM: dts: samsung-fimd: add LCD I80 interface specific properties YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 04/14] drm/exynos: add TE handler to support LCD I80 interface YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 05/14] drm/exynos: dsi: add pass TE host ops " YoungJun Cho
2014-07-09 15:22 ` Thierry Reding
2014-07-09 16:03 ` Inki Dae
2014-07-10 1:06 ` YoungJun Cho
2014-07-10 1:20 ` Inki Dae
2014-07-10 2:29 ` Inki Dae
2014-07-10 7:38 ` Thierry Reding
2014-07-14 9:22 ` YoungJun Cho
2014-07-14 9:41 ` Thierry Reding
2014-07-14 10:45 ` YoungJun Cho
2014-07-14 11:03 ` Thierry Reding [this message]
2014-07-15 2:34 ` Inki Dae
2014-07-16 2:23 ` YoungJun Cho
2014-07-16 7:54 ` Thierry Reding
2014-07-16 10:12 ` YoungJun Cho
2014-07-17 2:15 ` Inki Dae
2014-07-08 0:39 ` [PATCH v5 06/14] drm/exynos: fimd: " YoungJun Cho
2014-07-08 16:10 ` Inki Dae
2014-07-09 0:07 ` YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 07/14] ARM: dts: exynos_dsim: add exynos5410 compatible to DT bindings YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 08/14] drm/exynos: dsi: add driver data to support Exynos5410/5420/5440 SoCs YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 09/14] ARM: dts: s6e3fa0: add DT bindings YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 10/14] drm/panel: add S6E3FA0 driver YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 11/14] ARM: dts: exynos4: add system register property YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 12/14] ARM: dts: exynos5: " YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 13/14] ARM: dts: exynos5420: add mipi-phy node YoungJun Cho
2014-07-08 0:39 ` [PATCH v5 14/14] ARM: dts: exynos5420: add dsi node YoungJun Cho
2014-07-09 15:07 ` [PATCH v5 00/14] drm/exynos: support LCD I80 interface display Inki Dae
2014-07-09 15:23 ` Thierry Reding
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=20140714110326.GA31460@ulmo \
--to=thierry.reding@gmail.com \
--cc=a.hajda@samsung.com \
--cc=airlied@linux.ie \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=inki.dae@samsung.com \
--cc=jy0922.shim@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=sw0312.kim@samsung.com \
--cc=yj44.cho@samsung.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;
as well as URLs for NNTP newsgroup(s).