From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Dmitry Osipenko <digetx@gmail.com>,
Thierry Reding <thierry.reding@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
linux-tegra@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v8 7/7] drm/panel-simple: Add missing connector type for some panels
Date: Sat, 20 Jun 2020 14:49:34 +0300 [thread overview]
Message-ID: <20200620114934.GB5829@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20200620112132.GB16901@ravnborg.org>
Hi Sam and Dmitry,
On Sat, Jun 20, 2020 at 01:21:32PM +0200, Sam Ravnborg wrote:
> On Thu, Jun 18, 2020 at 01:27:03AM +0300, Dmitry Osipenko wrote:
> > The DRM panel bridge core requires connector type to be set up properly,
> > otherwise it rejects the panel. The missing connector type problem popped
> > up while I was trying to wrap CLAA070WP03XG panel into a DRM bridge in
> > order to test whether panel's rotation property work properly using
> > panel-simple driver on NVIDIA Tegra30 Nexus 7 tablet device, which uses
> > CLAA070WP03XG display panel.
> >
> > The NVIDIA Tegra DRM driver recently gained DRM bridges support for the
> > RGB output and now driver wraps directly-connected panels into DRM bridge.
> > Hence all panels should have connector type set properly now, otherwise
> > the panel's wrapping fails.
> >
> > This patch adds missing connector types for the LVDS panels that are found
> > on NVIDIA Tegra devices:
> >
> > 1. AUO B101AW03
> > 2. Chunghwa CLAA070WP03XG
> > 3. Chunghwa CLAA101WA01A
> > 4. Chunghwa CLAA101WB01
> > 5. EDT ET057090DHU
> > 6. Innolux N156BGE L21
> > 7. Samsung LTN101NT05
> >
> > Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>
> Very good to have this fixed.
> I went ahead and pushed this commit to drm-misc-next as it is really
> independent from the rest of the series.
>
> > ---
> > drivers/gpu/drm/panel/panel-simple.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> > index 6764ac630e22..9eb2dbb7bfa6 100644
> > --- a/drivers/gpu/drm/panel/panel-simple.c
> > +++ b/drivers/gpu/drm/panel/panel-simple.c
> > @@ -687,6 +687,7 @@ static const struct panel_desc auo_b101aw03 = {
> > .width = 223,
> > .height = 125,
> > },
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
Note that, for LVDS panels, the bus_format field is mandatory. This
panel, for instance, according to
http://www.vslcd.com/Specification/B101AW03%20V.0.pdf, uses
MEDIA_BUS_FMT_RGB666_1X7X3_SPWG (see
https://linuxtv.org/downloads/v4l-dvb-apis/userspace-api/v4l/subdev-formats.html#v4l2-mbus-pixelcode).
The panels below need to be investigated similarly.
> > };
> >
> > static const struct display_timing auo_b101ean01_timing = {
> > @@ -1340,6 +1341,7 @@ static const struct panel_desc chunghwa_claa070wp03xg = {
> > .width = 94,
> > .height = 150,
> > },
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
> > };
> >
> > static const struct drm_display_mode chunghwa_claa101wa01a_mode = {
> > @@ -1362,6 +1364,7 @@ static const struct panel_desc chunghwa_claa101wa01a = {
> > .width = 220,
> > .height = 120,
> > },
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
> > };
> >
> > static const struct drm_display_mode chunghwa_claa101wb01_mode = {
> > @@ -1384,6 +1387,7 @@ static const struct panel_desc chunghwa_claa101wb01 = {
> > .width = 223,
> > .height = 125,
> > },
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
> > };
> >
> > static const struct drm_display_mode dataimage_scf0700c48ggu18_mode = {
> > @@ -1573,6 +1577,7 @@ static const struct panel_desc edt_et057090dhu = {
> > },
> > .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
> > .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
This contradicts .bus_format and .bus_flags that hint that the panel is
a DPI panel, not an LVDS panel. According to
https://www.lcdtek.co.uk/dwpdf/ET057090DHU-RoHS.pdf, this isn't an LVDS
panel.
I'm worried enough research hasn't gone into this patch, and I'd prefer
reverting it until we check each panel individually.
> > };
> >
> > static const struct drm_display_mode edt_etm0700g0dh6_mode = {
> > @@ -2055,6 +2060,7 @@ static const struct panel_desc innolux_n156bge_l21 = {
> > .width = 344,
> > .height = 193,
> > },
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
> > };
> >
> > static const struct drm_display_mode innolux_p120zdg_bf1_mode = {
> > @@ -3001,6 +3007,7 @@ static const struct panel_desc samsung_ltn101nt05 = {
> > .width = 223,
> > .height = 125,
> > },
> > + .connector_type = DRM_MODE_CONNECTOR_LVDS,
> > };
> >
> > static const struct drm_display_mode samsung_ltn140at29_301_mode = {
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2020-06-20 11:50 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-17 22:26 [PATCH v8 0/7] Support DRM bridges on NVIDIA Tegra Dmitry Osipenko
2020-06-17 22:26 ` [PATCH v8 1/7] of_graph: add of_graph_presents() Dmitry Osipenko
2020-06-29 23:12 ` Rob Herring
2020-06-30 17:02 ` Dmitry Osipenko
2020-06-17 22:26 ` [PATCH v8 2/7] drm/of: Make drm_of_find_panel_or_bridge() to check graph's presence Dmitry Osipenko
2020-06-17 22:26 ` [PATCH v8 3/7] drm/tegra: output: Don't leak OF node on error Dmitry Osipenko
2020-06-17 22:27 ` [PATCH v8 4/7] drm/tegra: output: Support DRM bridges Dmitry Osipenko
2020-06-17 22:27 ` [PATCH v8 5/7] drm/tegra: output: rgb: Support LVDS encoder bridge Dmitry Osipenko
2020-06-17 22:27 ` [PATCH v8 6/7] drm/tegra: output: rgb: Wrap directly-connected panel into DRM bridge Dmitry Osipenko
2020-06-17 22:27 ` [PATCH v8 7/7] drm/panel-simple: Add missing connector type for some panels Dmitry Osipenko
2020-06-20 11:21 ` Sam Ravnborg
2020-06-20 11:49 ` Laurent Pinchart [this message]
2020-06-20 13:19 ` Dmitry Osipenko
2020-06-20 14:31 ` Sam Ravnborg
2020-06-20 15:05 ` Dmitry Osipenko
2020-06-20 15:30 ` Sam Ravnborg
2020-06-20 16:18 ` Dmitry Osipenko
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=20200620114934.GB5829@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=digetx@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=frowand.list@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=sam@ravnborg.org \
--cc=thierry.reding@gmail.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