All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <mripard@kernel.org>
To: Rob Herring <robh@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: Tue, 29 Sep 2026 10:39:24 +0200	[thread overview]
Message-ID: <artyl8fD3zzng8Uh@houat> (raw)
In-Reply-To: <20260928204059.GA515872-robh@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 3848 bytes --]

Hi,

I'll merge the two discussions in that thread.

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.
> > 
> > The panel-mipi-dsi-bpf driver replaces per-panel kernel modules
> > with a single generic driver whose panel-specific behavior is
> > provided by BPF programs loaded from userspace at runtime,
> > following the HID-BPF model. This enables new panel support
> > without kernel patches.
> > 
> > Panel DT nodes use a two-entry compatible with the panel-specific
> > string first and "panel-mipi-dsi-bpf" as fallback. The generic
> > driver matches on the fallback, while the first compatible is used
> > to identify which BPF program to load.
> 
> If you need the 1st compatible anyways, what is the point of the
> second one?

The whole point of this driver is that you don't need to modify the
kernel when you add support for a new panel.

> Also, I assume there is at least some panel supported in the kernel
> you might want to convert to this. That panel would not have the
> fallback (and the DT is fixed).

Yeah, that's true. I'd still need to identify the parts though. I guess
using a generic compatible but a specific model would work?

> And I agree with Neil's comment. At least until we start embedding BPF 
> into DT directly. ;)

And from Neil:

> I don't see how this can be a valid hardware description, bfp is a
> software implementation and has nothing to do in the bindings.

I'm quite a bit surprised by that argument though.

We have in the main dt-schema repos bindings like:

https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/options/u-boot.yaml
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/bootph.yaml
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/post-init-providers.yaml

Or, in Linux:
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/misc/google,android-pipe.yaml
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/sound/simple-card.yaml

All of them have been reviewed or acked by you, and yet none of them
relate to any hardware description.

panel-mipi-dsi-spi is a generic panel that will load a firmware, and
quite similar to this one. google,android-pipe and qcom,fastrpc don't
attach to anything and will just open a tunnel to userspace, which is
somewhat equivalent but more dramatic than what this driver is doing.
simple-card or its variations will just instantiate a kernel driver from
the DT and is used pretty much everywhere.

I reused the binding from panel-mipi-dsi-spi for this. It was reviewed
by rob, and acked by a panel maintainer, and 4 years ago, so we're way
past the "oh but we didn't know what we were doing back then" argument.

So, let's phrase this differently: what's different about the
description than panel-mipi-dsi-spi, or any other binding already in
tree?

If it's the BPF part, BPF is not Linux-only, and there's hardware with
direct BPF support these days, so it can be considered OS-agnostic and
not an implementation detail.

Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]

  reply	other threads:[~2026-09-29  8:39 UTC|newest]

Thread overview: 66+ 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 16:35   ` sashiko-bot
2026-09-28 19:16   ` Neil Armstrong
2026-09-28 20:40   ` Rob Herring
2026-09-29  8:39     ` Maxime Ripard [this message]
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
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-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:34   ` sashiko-bot
2026-09-28 16:22 ` [PATCH 3/6] drm/panel: dsi-bpf: Add BPF program build infrastructure and helper header Maxime Ripard
2026-09-28 16:31   ` sashiko-bot
2026-09-29 23:44   ` bot+bpf-ci
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:34   ` sashiko-bot
2026-09-28 16:22 ` [PATCH 5/6] drm/panel: dsi-bpf: Add Raspberry Pi 5-inch " Maxime Ripard
2026-09-28 16:33   ` sashiko-bot
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:31   ` sashiko-bot
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=artyl8fD3zzng8Uh@houat \
    --to=mripard@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=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=neil.armstrong@linaro.org \
    --cc=rfoss@kernel.org \
    --cc=robh@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 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.