From: Jianhua Lu <lujianhua000@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Konrad Dybcio <konrad.dybcio@linaro.org>,
Thierry Reding <thierry.reding@gmail.com>,
Sam Ravnborg <sam@ravnborg.org>, David Airlie <airlied@gmail.com>,
Daniel Vetter <daniel@ffwll.ch>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org,
~postmarketos/upstreaming@lists.sr.ht,
phone-devel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] drm/panel: Add driver for Novatek NT36523
Date: Wed, 8 Mar 2023 08:45:37 +0800 [thread overview]
Message-ID: <ZAfasb9aKTgyjbFc@Gentoo> (raw)
In-Reply-To: <CACRpkdbZCZiMM_qeqMd9=txVvPVHEzM4szOnPR-gCYdiXW_9eA@mail.gmail.com>
On Tue, Mar 07, 2023 at 11:34:55PM +0100, Linus Walleij wrote:
> Hi Jianhua,
>
> thanks for your patch!
>
> It appears Konrad is working on a very similar driver, so I suggest merging
> them into one Novatek NT36523 driver.
>
> Possibly we can fix this up first and then add Konrads Lenovo-panel with
> a patch on top.
>
> On Mon, Feb 20, 2023 at 1:13 PM Jianhua Lu <lujianhua000@gmail.com> wrote:
>
> > Add a driver for panels using the Novatek NT36523 display driver IC.
> >
> > Signed-off-by: Jianhua Lu <lujianhua000@gmail.com>
>
> (...)
>
> I like how you abstract the panel with init commands in the panel info.
>
> > +enum dsi_cmd_type {
> > + INIT_DCS_CMD,
> > + DELAY_CMD,
> > +};
> > +
> > +struct panel_init_cmd {
> > + enum dsi_cmd_type type;
> > + size_t len;
> > + const char *data;
> > +};
> > +
> > +#define _INIT_DCS_CMD(...) { \
> > + .type = INIT_DCS_CMD, \
> > + .len = sizeof((char[]){__VA_ARGS__}), \
> > + .data = (char[]){__VA_ARGS__} }
> > +
> > +#define _INIT_DELAY_CMD(...) { \
> > + .type = DELAY_CMD,\
> > + .len = sizeof((char[]){__VA_ARGS__}), \
> > + .data = (char[]){__VA_ARGS__} }
>
> I have seen this type of reinvented wheels a few times now. Don't do this.
>
> Look into other recently merged drivers and look how they do it, for example
> drivers/gpu/drm/panel/panel-himax-hx8394.c
>
> For example:
>
> - Use mipi_dsi_dcs_write_seq()
>
> - If the delay is just used at one point in the sequence, do not invent
> a command language like above for it, open code the delay instead
>
> - Try to decode as much magic as possible, if you look in Konrads
> driver you clearly see some standard MIPI commands, I bet you have
> some too.
>
> - Maybe use callbacks to send sequences instead of tables, like in
> the himax driver?
Maybe I should create a wrapper of mipi_dsi_dcs_write_seq() for sync dual dsi mode.
>
> Other than that it seems like something that could also handle the Lenovo
> display, or the other way around, I don't know which driver is the best
> starting point, but this one has the right Novatek name at least.
>
> Yours,
> Linus Walleij
WARNING: multiple messages have this Message-ID (diff)
From: Jianhua Lu <lujianhua000@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: devicetree@vger.kernel.org,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Sam Ravnborg <sam@ravnborg.org>,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Thierry Reding <thierry.reding@gmail.com>,
dri-devel@lists.freedesktop.org, phone-devel@vger.kernel.org,
~postmarketos/upstreaming@lists.sr.ht
Subject: Re: [PATCH v2 2/2] drm/panel: Add driver for Novatek NT36523
Date: Wed, 8 Mar 2023 08:45:37 +0800 [thread overview]
Message-ID: <ZAfasb9aKTgyjbFc@Gentoo> (raw)
In-Reply-To: <CACRpkdbZCZiMM_qeqMd9=txVvPVHEzM4szOnPR-gCYdiXW_9eA@mail.gmail.com>
On Tue, Mar 07, 2023 at 11:34:55PM +0100, Linus Walleij wrote:
> Hi Jianhua,
>
> thanks for your patch!
>
> It appears Konrad is working on a very similar driver, so I suggest merging
> them into one Novatek NT36523 driver.
>
> Possibly we can fix this up first and then add Konrads Lenovo-panel with
> a patch on top.
>
> On Mon, Feb 20, 2023 at 1:13 PM Jianhua Lu <lujianhua000@gmail.com> wrote:
>
> > Add a driver for panels using the Novatek NT36523 display driver IC.
> >
> > Signed-off-by: Jianhua Lu <lujianhua000@gmail.com>
>
> (...)
>
> I like how you abstract the panel with init commands in the panel info.
>
> > +enum dsi_cmd_type {
> > + INIT_DCS_CMD,
> > + DELAY_CMD,
> > +};
> > +
> > +struct panel_init_cmd {
> > + enum dsi_cmd_type type;
> > + size_t len;
> > + const char *data;
> > +};
> > +
> > +#define _INIT_DCS_CMD(...) { \
> > + .type = INIT_DCS_CMD, \
> > + .len = sizeof((char[]){__VA_ARGS__}), \
> > + .data = (char[]){__VA_ARGS__} }
> > +
> > +#define _INIT_DELAY_CMD(...) { \
> > + .type = DELAY_CMD,\
> > + .len = sizeof((char[]){__VA_ARGS__}), \
> > + .data = (char[]){__VA_ARGS__} }
>
> I have seen this type of reinvented wheels a few times now. Don't do this.
>
> Look into other recently merged drivers and look how they do it, for example
> drivers/gpu/drm/panel/panel-himax-hx8394.c
>
> For example:
>
> - Use mipi_dsi_dcs_write_seq()
>
> - If the delay is just used at one point in the sequence, do not invent
> a command language like above for it, open code the delay instead
>
> - Try to decode as much magic as possible, if you look in Konrads
> driver you clearly see some standard MIPI commands, I bet you have
> some too.
>
> - Maybe use callbacks to send sequences instead of tables, like in
> the himax driver?
Maybe I should create a wrapper of mipi_dsi_dcs_write_seq() for sync dual dsi mode.
>
> Other than that it seems like something that could also handle the Lenovo
> display, or the other way around, I don't know which driver is the best
> starting point, but this one has the right Novatek name at least.
>
> Yours,
> Linus Walleij
next prev parent reply other threads:[~2023-03-08 0:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-20 12:12 [PATCH v2 1/2] dt-bindings: display: panel: Add Novatek NT36523 bindings Jianhua Lu
2023-02-20 12:12 ` Jianhua Lu
2023-02-20 12:12 ` [PATCH v2 2/2] drm/panel: Add driver for Novatek NT36523 Jianhua Lu
2023-02-20 12:12 ` Jianhua Lu
2023-03-07 22:34 ` Linus Walleij
2023-03-07 22:34 ` Linus Walleij
2023-03-08 0:37 ` Jianhua Lu
2023-03-08 0:37 ` Jianhua Lu
2023-03-08 0:45 ` Jianhua Lu [this message]
2023-03-08 0:45 ` Jianhua Lu
2023-03-08 11:04 ` Konrad Dybcio
2023-03-08 11:04 ` Konrad Dybcio
2023-02-22 9:34 ` [PATCH v2 1/2] dt-bindings: display: panel: Add Novatek NT36523 bindings Krzysztof Kozlowski
2023-02-22 9:34 ` Krzysztof Kozlowski
2023-03-07 22:22 ` Linus Walleij
2023-03-07 22:22 ` Linus Walleij
2023-03-08 0:29 ` Jianhua Lu
2023-03-08 0:29 ` Jianhua Lu
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=ZAfasb9aKTgyjbFc@Gentoo \
--to=lujianhua000@gmail.com \
--cc=airlied@gmail.com \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=phone-devel@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=sam@ravnborg.org \
--cc=thierry.reding@gmail.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/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.