mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Maxime Ripard <mripard@kernel.org>
Cc: Neil Armstrong <neil.armstrong@linaro.org>,
	Jessica Zhang <jesszhan0024@gmail.com>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Bill Wendling <morbo@google.com>,
	Justin Stitt <justinstitt@google.com>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	Robert Foss <rfoss@kernel.org>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Luca Ceresoli <luca.ceresoli@bootlin.com>,
	Albert Esteve <aesteve@redhat.com>,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Javier Martinez Canillas <javierm@redhat.com>,
	dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
	llvm@lists.linux.dev, linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	Benjamin Tissoires <bentiss@kernel.org>
Subject: Re: [PATCH 1/6] dt-bindings: display: Add panel-mipi-dsi-bpf generic panel binding
Date: Thu, 1 Oct 2026 11:03:27 -0500	[thread overview]
Message-ID: <20261001160327.GA512699-robh@kernel.org> (raw)
In-Reply-To: <ar4HOuO-vox9VIKZ@houat>

On Thu, Oct 01, 2026 at 09:22:48AM +0200, Maxime Ripard wrote:
> On Wed, Sep 30, 2026 at 02:07:39PM -0500, Rob Herring wrote:
> > On Wed, Sep 30, 2026 at 3:04 AM Maxime Ripard <mripard@kernel.org> wrote:
> > >
> > > On Tue, Sep 29, 2026 at 05:28:22PM -0500, Rob Herring wrote:
> > > > On Tue, Sep 29, 2026 at 10:39:24AM +0200, Maxime Ripard wrote:
> > > > > On Mon, Sep 28, 2026 at 03:40:59PM -0500, Rob Herring wrote:
> > > > > > On Mon, Sep 28, 2026 at 06:22:01PM +0200, Maxime Ripard wrote:
> > > > > > > Most MIPI-DSI panel drivers follow an identical pattern: acquire
> > > > > > > regulators and GPIOs, perform a reset pulse with specific timing,
> > > > > > > send a vendor-supplied sequence of DSI commands, then enable the
> > > > > > > display. The only truly panel-specific part is the init sequence
> > > > > > > and power-on/off timing.
> > 
> > [snip a bunch of irrelevant shit]
> > 
> > > > > So, let's phrase this differently: what's different about the
> > > > > description than panel-mipi-dsi-spi, or any other binding already in
> > > > > tree?
> > > >
> > > > There's all of 3 panels supported. Compared to all the other panels we
> > > > have, hardly the rule over the exception. You can always fine "bad"
> > > > examples or exceptions.
> > > >
> > > > That one defines a single supply. Any other MIPI SPI panel with
> > > > different supplies or GPIO controls probably has its own binding. Trying
> > > > to parameterize that in DT doesn't work. We've rejected trying to do
> > > > that in DT over and over. What's your story here for that?
> > >
> > > Sigh... Look, I really don't care about an argument DT maintainers use
> > > at their discretion for this. We both know full well that it's been and
> > > still is inconsistenly applied, and you also know that it's not like
> > > I've been playing the DT game since pretty much the beginning (on ARM
> > > anyway). So it's not like I don't want to make it work, I do. But what I
> > > care about is enabling that driver to work.
> > >
> > > I reused exactly the same binding than the last major binding that was
> > > merged for panels, and support about the same number of panels. I guess
> > > that was a mistake, so sorry for that.
> > >
> > > I'm fine with reworking the binding any way you want as long as it still
> > > allows for the same use-case, but I would have hoped for a better
> > > feedback on how to do so than "oh what a huge pile of shit this is".
> > 
> > When you can answer my question above rather than make up shit I
> > didn't say, maybe I'll reply again on this thread. Otherwise I'm done
> > here. I don't need this abuse for the thankless job of DT
> > maintainership.
> 
> It's been the whole tone of the reviews, so I'm sorry if you were caught
> in the crossfire and you didn't mean that. And I'm sorry it made your DT
> maintainership work harder than it already is.
> 
> I do mean what I said before though. I have no problem changing the
> binding the way you want, but I need to know what to change in the first
> place, otherwise it's really no better than a NAK, or we're bound to
> have the same exchange for the v2, and I'd rather not.
> 
> I indeed missed your question, but now I'm not sure I understand what
> you mean by "paremeterize that in DT"? The supplies in the binding are
> an aggregate of all the possible supplies a panel can take. They are not
> a wildcard, but they all have their own semantics that are used by
> panels right now.

I read a bit more of the series and understand it a bit better now.

> I don't expect any new supply to be introduced, unless there's a major
> panel technology change such as the one we had with the introduction of
> OLED.
> 
> Would you prefer to reduce the number of supplies to the minimum we need
> right now, and extend it as needed?

No. You've defined some arbitrary list of supply names not just in the 
binding, but in the kernel. I think both are a mistake. Can't the BPF 
prog define the supply names and pass those to the kernel? Then when you 
have a panel with 'foo' and 'bar' supplies, you don't need a kernel 
change or some remapping to the existing set of names. The only real 
exception we have there is if it's a single supply, just use 
'power-supply'. It's the same issue with GPIOs, but there's generally 
less variability with them.

The whole point of requiring specific compatibles and not doing "generic 
bindings" is that's the only way the OS implementation can evolve 
without changing the DT. You can have a specific driver or a generic 
driver or a generic driver using BPF and which one can change over time 
if needed, but from a DT perspective we don't care.

So first, make this BPF stuff work with any existing panels (or some 
defined set). I'm not saying convert everything, only that you could. 
Otherwise you've failed the test of if the driver implementation 
changes, does the binding have to change.

After that, the remaining problem is only how do you make it 
work with unknown panels (only unknown to the kernel as any new panel 
still needs a binding). There's 2 ways we can solve that. Either make 
the kernel be able to bind to a generic driver without a compatible 
match or have a fallback compatible. The former could be done by 
userspace (though I saw gregkh added a taint for userspace bind 
recently) or we could somehow make the kernel bind to any DSI child 
devices without a match.

Rob

  reply	other threads:[~2026-10-01 16:03 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-28 16:22 [PATCH 0/6] drm/bridge: Add a BPF-based MIPI-DSI panel driver Maxime Ripard
2026-09-28 16:22 ` [PATCH 1/6] dt-bindings: display: Add panel-mipi-dsi-bpf generic panel binding Maxime Ripard
2026-09-28 19:16   ` Neil Armstrong
2026-09-28 20:40   ` Rob Herring
2026-09-29  8:39     ` Maxime Ripard
2026-09-29 22:28       ` Rob Herring
2026-09-30  8:04         ` Maxime Ripard
2026-09-30 19:07           ` Rob Herring
2026-10-01  7:22             ` Maxime Ripard
2026-10-01 16:03               ` Rob Herring [this message]
2026-09-30 13:32       ` Neil Armstrong
2026-10-01  7:09         ` Maxime Ripard
2026-10-02  7:28           ` Neil Armstrong
2026-09-28 20:43   ` Rob Herring (Arm)
2026-09-29 23:44   ` bot+bpf-ci
2026-09-28 16:22 ` [PATCH 2/6] drm/panel: Add generic MIPI-DSI panel driver with BPF init sequences Maxime Ripard
2026-09-28 16:22 ` [PATCH 3/6] drm/panel: dsi-bpf: Add BPF program build infrastructure and helper header Maxime Ripard
2026-09-29 23:44   ` bot+bpf-ci
2026-09-28 16:22 ` [PATCH 4/6] drm/panel: dsi-bpf: Add Raspberry Pi 7-inch panel BPF program Maxime Ripard
2026-09-28 16:22 ` [PATCH 5/6] drm/panel: dsi-bpf: Add Raspberry Pi 5-inch " Maxime Ripard
2026-09-28 16:22 ` [PATCH DO NOT MERGE 6/6] arm64: dts: broadcom: Add Raspberry Pi ILI9881C DSI panel overlays Maxime Ripard
2026-09-28 16:37 ` [PATCH 0/6] drm/bridge: Add a BPF-based MIPI-DSI panel driver Laurent Pinchart
2026-09-28 17:31   ` Benjamin Tissoires
2026-09-28 18:12     ` Laurent Pinchart
2026-09-29  6:54   ` Maxime Ripard
2026-09-28 16:39 ` Neil Armstrong
2026-09-28 17:24   ` Benjamin Tissoires
2026-09-28 19:20     ` Neil Armstrong
2026-09-28 19:48       ` Benjamin Tissoires
2026-09-28 20:36         ` Neil Armstrong
2026-09-29  7:41           ` Maxime Ripard
2026-09-29  7:55             ` Javier Martinez Canillas
2026-09-30 13:37               ` Neil Armstrong
2026-10-01  6:50                 ` Maxime Ripard
2026-10-02  7:30                   ` Neil Armstrong
2026-10-02  7:37                     ` Javier Martinez Canillas
2026-10-02  7:53                       ` Neil Armstrong
2026-10-02  9:04                         ` Javier Martinez Canillas
2026-09-30 13:36             ` Neil Armstrong
2026-09-30 20:59               ` Kumar Kartikeya Dwivedi
2026-10-01  6:38               ` Maxime Ripard
2026-10-01 17:03               ` Maxime Ripard
2026-09-29  7:27       ` Maxime Ripard
2026-09-30 13:49         ` Neil Armstrong
2026-10-01  7:01           ` Maxime Ripard
2026-10-02  7:39             ` Neil Armstrong
2026-09-29  7:13   ` Maxime Ripard
2026-09-29  7:46     ` Benjamin Tissoires
2026-09-30 13:46     ` Neil Armstrong
2026-10-01  6:48       ` Maxime Ripard
2026-10-02  8:11         ` Neil Armstrong
2026-09-29  9:03 ` Jani Nikula
2026-09-29  9:32   ` Benjamin Tissoires
2026-09-29 10:16     ` Jani Nikula
2026-09-29 12:28       ` Maxime Ripard
2026-09-30 14:01   ` Neil Armstrong
2026-09-30 19:18     ` Jani Nikula
2026-10-01  7:05     ` Maxime Ripard

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=20261001160327.GA512699-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=aesteve@redhat.com \
    --cc=airlied@gmail.com \
    --cc=andrzej.hajda@intel.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bentiss@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=florian.fainelli@broadcom.com \
    --cc=javierm@redhat.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jesszhan0024@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=justinstitt@google.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=llvm@lists.linux.dev \
    --cc=luca.ceresoli@bootlin.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=morbo@google.com \
    --cc=mripard@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=neil.armstrong@linaro.org \
    --cc=rfoss@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    /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

all inboxes | Powered by JetHome®