From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Boris BREZILLON <boris.brezillon@free-electrons.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
Ludovic Desroches <ludovic.desroches@atmel.com>,
Nicolas Ferre <nicolas.ferre@atmel.com>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Andrew Victor <linux@maxim.org.za>,
David Airlie <airlied@linux.ie>,
dri-devel@lists.freedesktop.org, linux-pwm@vger.kernel.org,
Samuel Ortiz <sameo@linux.intel.com>,
Lee Jones <lee.jones@linaro.org>, Rob Clark <robdclark@gmail.com>,
Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org, Pawel Moll <pawel.moll@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Bo Shen <voice.shen@atmel.com>, Kumar Gala <galak@codeaurora.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 00/11] drm: add support for Atmel HLCDC Display Controller
Date: Fri, 29 Aug 2014 00:52:47 +0200 [thread overview]
Message-ID: <1589754.DxSd6XN1nL@avalon> (raw)
In-Reply-To: <20140828162100.71543859@bbrezillon>
Hi Boris,
On Thursday 28 August 2014 16:21:00 Boris BREZILLON wrote:
> On Thu, 28 Aug 2014 14:19:22 +0200 Laurent Pinchart wrote:
> > Hi Boris,
>
> [...]
>
> >> I don't have any VGA connector (or I'm missing something :-)),
> >
> > My bad.
>
> No problem.
>
> >> but I have an LCD panel and an RGB to HDMI encoder connected on the same
> >> RGB connector.
> >
> > There's no such thing as an RGB connector in DRM. Your SoC has a parallel
> > RGB video output (I assume it's a DPI bus). From a DRM point of view,
> > that bus corresponds to the output of the CRTC.
>
> Okay, this mean I'll have to dispatch some of the code I've put in
> atmel_hlcdc_output.c into atmel_hlcdc_crtc.c (BTW, any chance you could
> take a look at this files ?).
Not in the very near future I'm afraid, I'm moving to a new flat in a couple
of days, that will keep me pretty busy. If nobody has reviewed your patches in
a week from now feel free to ping me.
> >>> As DRM hardcodes the pipeline model to CRTC -> encoder -> connector,
> >>> you will also need a DRM encoder in the VGA path. I suppose your board
> >>> has a VGA DAC, that's the component you should expose as a DRM encoder
> >>> (even if it can't be controlled and doesn't limit the valid modes).
> >>
> >> Actually, my problem is that both devices are connected on the same RGB
> >> connector, and thus share the same display mode (resolution, HSYNC,
> >> VSYNC, RGB output mode, ...).
> >> This means that all remote devices have to agree on a specific mode if
> >> we want to mirror the display on several output devices, otherwise we
> >> must disable one of the output devices.
> >
> > That's not really a problem. From a DRM perspective you need to model your
> > device as
> >
> > ,------. ,---------------. ,-----------------.
> > | CRTC | -+--> | Dummy Encoder | ----> | Panel Connector |
> > `------´ | `---------------´ `-----------------´
> > | ,---------------. ,-----------------.
> > \--> | HDMI Encoder | ----> | HDMI Connector |
> > `---------------´ `-----------------´
> >
> > The HDMI pipeline is pretty straightforward.
> >
> > You have told me that the panel has a parallel RGB input without any
> > encoder in the panel pipeline (by the way, which panel model are you
> > using ?). However, DRM requires an encoder in every pipeline. You will
> > thus need to instantiate a dummy encoder. One option would be to set the
> > encoder and connector types to DRM_MODE_ENCODER_LVDS and
> > DRM_MODE_CONNECTOR_LVDS respectively, as that's what userspace usually
> > expects for panels. That doesn't reflect the reality in your case though,
> > so creating a new DRM_MODE_CONNECTOR_DPI type might be needed, possibly
> > to be used with DRM_MODE_ENCODER_NONE.
> >
> > As neither encoder can modify the mode, the same mode will be output on
> > the two connectors.
>
> There are still several things to I'd like to understand:
> 1) who's gonna configure the RGB bus output format (RGB444, RGB666,
> RGB888) which directly depends on the device connected on this bus:
> the CRTC or the dummy and HDMI encoders.
Your mileage my vary, but in general I believe this should be the
responsibility of the CRTC driver (the HLCDC driver in your case), from
information it gets from DT and/or queries dynamically from the encoders at
runtime.
> 2) Where should the HDMI encoder/connector support be implemented:
> in drivers/gpu/drm/atmel-hlcdc, drivers/gpu/drm/bridge or somewhere
> else. My point is that I don't want to add specific support for the
> Sil902x transmitter chip in the hlcdc driver.
The HDMI encoder should definitely be handled by a standalone driver. We have
two infrastructures for this at the moment, drm_bridge and drm_encoder_slave.
I'd like to see them being merged. I need to implement support for an HDMI
encoder as well, I'll see if I can give this a try.
> Sorry if these are silly questions, but I'm still trying to understand
> how my case should be modeled :-).
As I don't have straightforward answers I won't consider the questions as
silly :-)
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2014-08-28 22:52 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-22 13:11 [PATCH v4 00/11] drm: add support for Atmel HLCDC Display Controller Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 01/11] mfd: add atmel-hlcdc driver Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 02/11] mfd: add documentation for atmel-hlcdc DT bindings Boris BREZILLON
2014-07-22 14:32 ` Varka Bhadram
2014-07-22 13:11 ` [PATCH v4 03/11] pwm: add support for atmel-hlcdc-pwm device Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 04/11] pwm: add DT bindings documentation for atmel-hlcdc-pwm driver Boris BREZILLON
2014-07-22 14:36 ` Varka Bhadram
2014-07-22 13:11 ` [PATCH v4 05/11] drm: add Atmel HLCDC Display Controller support Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 06/11] drm: add DT bindings documentation for atmel-hlcdc-dc driver Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 07/11] ARM: AT91/dt: split sama5d3 lcd pin definitions to match RGB mode configs Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 08/11] ARM: AT91/dt: add alternative pin muxing for sama5d3 lcd pins Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 09/11] ARM: at91/dt: define the HLCDC node available on sama5d3 SoCs Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 10/11] ARM: at91/dt: add LCD panel description to sama5d3xdm.dtsi Boris BREZILLON
2014-07-22 13:11 ` [PATCH v4 11/11] ARM: at91/dt: enable the LCD panel on sama5d3xek boards Boris BREZILLON
2014-08-21 8:16 ` [PATCH v4 00/11] drm: add support for Atmel HLCDC Display Controller Ludovic Desroches
2014-08-21 8:37 ` Boris BREZILLON
2014-08-21 9:04 ` Thierry Reding
2014-08-21 9:41 ` Boris BREZILLON
2014-08-21 9:49 ` Boris BREZILLON
2014-08-21 9:52 ` Thierry Reding
2014-08-21 10:32 ` Andrzej Hajda
2014-08-21 13:21 ` Thierry Reding
2014-08-21 15:04 ` Andrzej Hajda
2014-08-21 15:30 ` Boris BREZILLON
2014-08-21 16:10 ` Andrzej Hajda
2014-08-21 13:06 ` Boris BREZILLON
2014-08-21 13:16 ` Thierry Reding
2014-08-21 13:30 ` Boris BREZILLON
2014-08-21 14:32 ` Boris BREZILLON
2014-08-25 12:45 ` Daniel Vetter
2014-08-21 17:08 ` Laurent Pinchart
2014-08-21 17:26 ` Boris BREZILLON
2014-08-25 23:39 ` Laurent Pinchart
2014-08-27 7:52 ` Boris BREZILLON
2014-08-28 12:19 ` Laurent Pinchart
2014-08-28 14:21 ` Boris BREZILLON
2014-08-28 22:52 ` Laurent Pinchart [this message]
2014-08-21 10:16 ` Andrzej Hajda
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=1589754.DxSd6XN1nL@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=airlied@linux.ie \
--cc=alexandre.belloni@free-electrons.com \
--cc=boris.brezillon@free-electrons.com \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux@maxim.org.za \
--cc=ludovic.desroches@atmel.com \
--cc=mark.rutland@arm.com \
--cc=nicolas.ferre@atmel.com \
--cc=pawel.moll@arm.com \
--cc=plagnioj@jcrosoft.com \
--cc=robdclark@gmail.com \
--cc=robh+dt@kernel.org \
--cc=sameo@linux.intel.com \
--cc=thierry.reding@gmail.com \
--cc=voice.shen@atmel.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