From: Thierry Reding <thierry.reding@gmail.com>
To: "Lothar Waßmann" <LW@KARO-electronics.de>
Cc: Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, Rob Herring <robh+dt@kernel.org>
Subject: Re: [PATCH 2/9] drm/panel: simple: simplify display_mode definitions by using macro
Date: Tue, 17 Oct 2017 15:08:31 +0200 [thread overview]
Message-ID: <20171017130831.GA21172@ulmo> (raw)
In-Reply-To: <20171017150516.0cab0cc1@karo-electronics.de>
[-- Attachment #1.1: Type: text/plain, Size: 3456 bytes --]
On Tue, Oct 17, 2017 at 03:05:16PM +0200, Lothar Waßmann wrote:
> Hi,
>
> On Tue, 17 Oct 2017 14:09:37 +0200 Thierry Reding wrote:
> > On Wed, Oct 11, 2017 at 01:23:34PM +0200, Lothar Waßmann wrote:
> > > Use the newly defined macro to generate the display_mode data entries
> > > for all panels. This reduces the code size significantly and makes the
> > > code more readable.
> > >
> > > Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
> > > ---
> > > drivers/gpu/drm/panel/panel-simple.c | 799 ++++++-----------------------------
> > > 1 file changed, 134 insertions(+), 665 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> > > index dec639d..fde9c41 100644
> > > --- a/drivers/gpu/drm/panel/panel-simple.c
> > > +++ b/drivers/gpu/drm/panel/panel-simple.c
> > > @@ -89,6 +89,20 @@ struct panel_simple {
> > > struct gpio_desc *enable_gpio;
> > > };
> > >
> > > +#define SP_DISPLAY_MODE(freq, ha, hfp, hs, hbp, va, vfp, vs, vbp, vr, flgs) { \
> > > + .clock = freq, \
> > > + .hdisplay = ha, \
> > > + .hsync_start = (ha) + (hfp), \
> > > + .hsync_end = (ha) + (hfp) + (hs), \
> > > + .htotal = (ha) + (hfp) + (hs) + (hbp), \
> > > + .vdisplay = (va), \
> > > + .vsync_start = (va) + (vfp), \
> > > + .vsync_end = (va) + (vfp) + (vs), \
> > > + .vtotal = (va) + (vfp) + (vs) + (vbp), \
> > > + .vrefresh = vr, \
> > > + .flags = flgs, \
> > > +}
> > > +
> > > static inline struct panel_simple *to_panel_simple(struct drm_panel *panel)
> > > {
> > > return container_of(panel, struct panel_simple, base);
> > [...]
> > > @@ -411,33 +415,9 @@ static const struct panel_desc ampire_am_480272h3tmqw_t01h = {
> > > .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> > > };
> > >
> > > -#define SP_DISPLAY_MODE(freq, ha, hfp, hs, hbp, va, vfp, vs, vbp, vr, flgs) { \
> > > - .clock = freq, \
> > > - .hdisplay = ha, \
> > > - .hsync_start = (ha) + (hfp), \
> > > - .hsync_end = (ha) + (hfp) + (hs), \
> > > - .htotal = (ha) + (hfp) + (hs) + (hbp), \
> > > - .vdisplay = (va), \
> > > - .vsync_start = (va) + (vfp), \
> > > - .vsync_end = (va) + (vfp) + (vs), \
> > > - .vtotal = (va) + (vfp) + (vs) + (vbp), \
> > > - .vrefresh = vr, \
> > > - .flags = flgs, \
> > > - }
> >
> > Your first patch should put this in the right place to begin with so
> > that this patch is really just the conversion.
> >
> > Again, I don't think this macro actually improves the way modes are
> > defined.
> >
> I'm not happy with this panel driver stuff anyway. With the legacy
> 'display-timings' node that provided the timing data directly in the
> DTB, every bootloader could pick up the timing data and feed it to
> whatever driver it used for the display.
> With the panel driver stuff the whole Linux driver has to be replicated
> in the boot loader in order to be able to use the same DTB as Linux for
> its HW configuration.
> And adding a new panel involves recompiling the kernel and the boot
> loader, rather than adding the timing data from the panel's datasheet
> into the DTB.
This isn't the first time I've heard this. Please read this for more
background information on why the situation is what it is:
http://sietch-tagr.blogspot.de/2016/04/display-panels-are-not-special.html
Thierry
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@gmail.com>
To: "Lothar Waßmann" <LW@KARO-electronics.de>
Cc: David Airlie <airlied@linux.ie>,
Mark Rutland <mark.rutland@arm.com>,
Rob Herring <robh+dt@kernel.org>,
devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/9] drm/panel: simple: simplify display_mode definitions by using macro
Date: Tue, 17 Oct 2017 15:08:31 +0200 [thread overview]
Message-ID: <20171017130831.GA21172@ulmo> (raw)
In-Reply-To: <20171017150516.0cab0cc1@karo-electronics.de>
[-- Attachment #1: Type: text/plain, Size: 3456 bytes --]
On Tue, Oct 17, 2017 at 03:05:16PM +0200, Lothar Waßmann wrote:
> Hi,
>
> On Tue, 17 Oct 2017 14:09:37 +0200 Thierry Reding wrote:
> > On Wed, Oct 11, 2017 at 01:23:34PM +0200, Lothar Waßmann wrote:
> > > Use the newly defined macro to generate the display_mode data entries
> > > for all panels. This reduces the code size significantly and makes the
> > > code more readable.
> > >
> > > Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
> > > ---
> > > drivers/gpu/drm/panel/panel-simple.c | 799 ++++++-----------------------------
> > > 1 file changed, 134 insertions(+), 665 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> > > index dec639d..fde9c41 100644
> > > --- a/drivers/gpu/drm/panel/panel-simple.c
> > > +++ b/drivers/gpu/drm/panel/panel-simple.c
> > > @@ -89,6 +89,20 @@ struct panel_simple {
> > > struct gpio_desc *enable_gpio;
> > > };
> > >
> > > +#define SP_DISPLAY_MODE(freq, ha, hfp, hs, hbp, va, vfp, vs, vbp, vr, flgs) { \
> > > + .clock = freq, \
> > > + .hdisplay = ha, \
> > > + .hsync_start = (ha) + (hfp), \
> > > + .hsync_end = (ha) + (hfp) + (hs), \
> > > + .htotal = (ha) + (hfp) + (hs) + (hbp), \
> > > + .vdisplay = (va), \
> > > + .vsync_start = (va) + (vfp), \
> > > + .vsync_end = (va) + (vfp) + (vs), \
> > > + .vtotal = (va) + (vfp) + (vs) + (vbp), \
> > > + .vrefresh = vr, \
> > > + .flags = flgs, \
> > > +}
> > > +
> > > static inline struct panel_simple *to_panel_simple(struct drm_panel *panel)
> > > {
> > > return container_of(panel, struct panel_simple, base);
> > [...]
> > > @@ -411,33 +415,9 @@ static const struct panel_desc ampire_am_480272h3tmqw_t01h = {
> > > .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> > > };
> > >
> > > -#define SP_DISPLAY_MODE(freq, ha, hfp, hs, hbp, va, vfp, vs, vbp, vr, flgs) { \
> > > - .clock = freq, \
> > > - .hdisplay = ha, \
> > > - .hsync_start = (ha) + (hfp), \
> > > - .hsync_end = (ha) + (hfp) + (hs), \
> > > - .htotal = (ha) + (hfp) + (hs) + (hbp), \
> > > - .vdisplay = (va), \
> > > - .vsync_start = (va) + (vfp), \
> > > - .vsync_end = (va) + (vfp) + (vs), \
> > > - .vtotal = (va) + (vfp) + (vs) + (vbp), \
> > > - .vrefresh = vr, \
> > > - .flags = flgs, \
> > > - }
> >
> > Your first patch should put this in the right place to begin with so
> > that this patch is really just the conversion.
> >
> > Again, I don't think this macro actually improves the way modes are
> > defined.
> >
> I'm not happy with this panel driver stuff anyway. With the legacy
> 'display-timings' node that provided the timing data directly in the
> DTB, every bootloader could pick up the timing data and feed it to
> whatever driver it used for the display.
> With the panel driver stuff the whole Linux driver has to be replicated
> in the boot loader in order to be able to use the same DTB as Linux for
> its HW configuration.
> And adding a new panel involves recompiling the kernel and the boot
> loader, rather than adding the timing data from the panel's datasheet
> into the DTB.
This isn't the first time I've heard this. Please read this for more
background information on why the situation is what it is:
http://sietch-tagr.blogspot.de/2016/04/display-panels-are-not-special.html
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-10-17 13:08 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-11 11:23 [PATCH 0/9] drm/panel: simple: improve definition of display modes and add more panels Lothar Waßmann
2017-10-11 11:23 ` Lothar Waßmann
2017-10-11 11:23 ` [PATCH 1/9] drm/panel: simple: add a macro for defining display modes in a simpler and less error prone way Lothar Waßmann
2017-10-17 12:08 ` Thierry Reding
2017-10-17 12:13 ` Lothar Waßmann
2017-10-17 12:13 ` Lothar Waßmann
[not found] ` <20171017141337.088ba796-AvR2QvxeiV7DiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>
2017-10-17 12:50 ` Thierry Reding
2017-10-17 12:50 ` Thierry Reding
2017-10-11 11:23 ` [PATCH 2/9] drm/panel: simple: simplify display_mode definitions by using macro Lothar Waßmann
[not found] ` <1507721021-28174-3-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>
2017-10-17 12:09 ` Thierry Reding
2017-10-17 12:09 ` Thierry Reding
2017-10-17 13:05 ` Lothar Waßmann
2017-10-17 13:08 ` Thierry Reding [this message]
2017-10-17 13:08 ` Thierry Reding
2017-10-17 13:17 ` Lothar Waßmann
2017-10-11 11:23 ` [PATCH 3/9] drm/panel: simple: make it possible to override LCD bus format Lothar Waßmann
[not found] ` <1507721021-28174-4-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>
2017-10-13 22:13 ` Rob Herring
2017-10-13 22:13 ` Rob Herring
2017-10-17 12:12 ` Thierry Reding
2017-10-17 12:12 ` Thierry Reding
2017-10-17 12:44 ` Lothar Waßmann
2017-10-17 12:44 ` Lothar Waßmann
[not found] ` <20171017144423.4ddd6047-AvR2QvxeiV7DiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>
2017-10-17 12:56 ` Thierry Reding
2017-10-17 12:56 ` Thierry Reding
2017-10-17 17:11 ` Rob Herring
2017-10-17 17:11 ` Rob Herring
[not found] ` <1507721021-28174-1-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>
2017-10-11 11:23 ` [PATCH 4/9] drm/panel: simple: add support for overriding the pixel clock polarity Lothar Waßmann
2017-10-11 11:23 ` Lothar Waßmann
2017-10-16 22:13 ` Rob Herring
2017-10-16 22:13 ` Rob Herring
[not found] ` <CAL_Jsq+EcROz1OYK28y814+Q__F=1obXe7EuXRBta+BRFjBJFA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-17 6:51 ` Lothar Waßmann
2017-10-17 6:51 ` Lothar Waßmann
2017-10-17 12:14 ` Thierry Reding
2017-10-17 12:25 ` Lothar Waßmann
2017-10-17 12:45 ` Thierry Reding
2017-10-17 12:45 ` Thierry Reding
2017-10-25 9:56 ` Lothar Waßmann
2017-10-11 11:23 ` [PATCH 5/9] drm/panel: simple: add support for EDT ET0350 3.5" QVGA panel Lothar Waßmann
2017-10-11 11:23 ` Lothar Waßmann
[not found] ` <1507721021-28174-6-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>
2017-10-17 19:50 ` Rob Herring
2017-10-17 19:50 ` Rob Herring
2017-10-11 11:23 ` [PATCH 6/9] drm/panel: simple: add support for EDT ET0430 4.3" HVGA panel Lothar Waßmann
2017-10-11 11:23 ` [PATCH 7/9] drm/panel: simple: add support for NLT NL12880 12.1" WXGA LVDS panel Lothar Waßmann
2017-10-11 11:23 ` [PATCH 8/9] drm/panel: simple: add support for EDT ETM0700G0EDH6 7" WVGA panel Lothar Waßmann
2017-10-11 11:23 ` [PATCH 9/9] drm/panel: simple: add support for EDT ET1010G0DSA/ETML1010G0DKA 10.1" WXGA LVDS panels Lothar Waßmann
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=20171017130831.GA21172@ulmo \
--to=thierry.reding@gmail.com \
--cc=LW@KARO-electronics.de \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=robh+dt@kernel.org \
/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.