From: bot+bpf-ci@kernel.org
To: mripard@kernel.org,neil.armstrong@linaro.org,jesszhan0024@gmail.com,airlied@gmail.com,simona@ffwll.ch,maarten.lankhorst@linux.intel.com,tzimmermann@suse.de,robh@kernel.org,krzk+dt@kernel.org,conor+dt@kernel.org,nathan@kernel.org,ndesaulniers@google.com,morbo@google.com,justinstitt@google.com,florian.fainelli@broadcom.com,bcm-kernel-feedback-list@broadcom.com
Cc: andrzej.hajda@intel.com,neil.armstrong@linaro.org,rfoss@kernel.org,Laurent.pinchart@ideasonboard.com,jonas@kwiboo.se,jernej.skrabec@gmail.com,luca.ceresoli@bootlin.com,aesteve@redhat.com,dave.stevenson@raspberrypi.com,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,mripard@kernel.org,bentiss@kernel.org,ast@kernel.org,andrii@kernel.org,daniel@iogearbox.net,martin.lau@kernel.org,eddyz87@gmail.com,yonghong.song@linux.dev,mason@kernel.org,ihor.solodrai@linux.dev
Subject: Re: [PATCH 3/6] drm/panel: dsi-bpf: Add BPF program build infrastructure and helper header
Date: Tue, 29 Sep 2026 23:44:48 +0000 (UTC) [thread overview]
Message-ID: <052fc5fccb1cfb3a9bb4751e68080c92bc0e1759be9d1dc42972f2fe6f822976@mail.kernel.org> (raw)
In-Reply-To: <20260928-drm-mipi-dsi-panel-ebpf-v1-3-5244926aace4@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 5136 bytes --]
> diff --git a/drivers/gpu/drm/panel/bpf/progs/Makefile b/drivers/gpu/drm/panel/bpf/progs/Makefile
> new file mode 100644
> index 000000000000..74190ee618ab
> --- /dev/null
> +++ b/drivers/gpu/drm/panel/bpf/progs/Makefile
[ ... ]
> @@ -0,0 +1,93 @@
> +VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux) \
> + $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux) \
> + ../../../../../../vmlinux \
> + /sys/kernel/btf/vmlinux \
> + /boot/vmlinux-$(shell uname -r)
> +VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
[ ... ]
> +vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL) | $(INCLUDE_DIR)
> +ifeq ($(VMLINUX_H),)
> + $(call msg,GEN,,$@)
> + $(Q)$(BPFTOOL) btf dump file $(VMLINUX_BTF) format c > $@
> +else
> + $(call msg,CP,,$@)
> + $(Q)cp "$(VMLINUX_H)" $@
> +endif
Does this build work when CONFIG_DRM_PANEL_BPF_MIPI_DSI=m?
The Makefile generates vmlinux.h from vmlinux BTF only. The BPF programs
need types defined in the panel driver: struct drm_panel_dsi_bpf_ops,
struct panel_bpf_mipi_dsi_ctx, and the panel_bpf_mipi_dsi_supply and
panel_bpf_mipi_dsi_gpio enums.
DRM_PANEL_BPF_MIPI_DSI is tristate and becomes =m when CONFIG_DRM=m
(the case in arch/arm64/configs/defconfig, the Raspberry Pi target).
With =m, these types exist only in the module's split BTF at
/sys/kernel/btf/panel_bpf_mipi_dsi, not in vmlinux BTF.
panel-bpf-mipi-dsi.h declares PANEL_BPF_MIPI_DSI_OPS(x) which expands
to "struct drm_panel_dsi_bpf_ops x", and uses PANEL_BPF_MIPI_DSI_SUPPLY_*
and PANEL_BPF_MIPI_DSI_GPIO_* enum values. Without the module BTF dump,
the struct is incomplete and the enums are undeclared. The panel programs
added later in the series would fail to compile.
The commit message says the Makefile follows drivers/hid/bpf/progs/, but
that works because HID_BPF is bool and its types always land in vmlinux
BTF.
You could either dump the module BTF:
bpftool btf dump file /sys/kernel/btf/panel_bpf_mipi_dsi \
-B $(VMLINUX_BTF) format c >> vmlinux.h
or define the ABI types directly in panel-bpf-mipi-dsi.h, as the bpf_testmod
selftests do.
> diff --git a/drivers/gpu/drm/panel/bpf/progs/panel-bpf-mipi-dsi.h b/drivers/gpu/drm/panel/bpf/progs/panel-bpf-mipi-dsi.h
> new file mode 100644
> index 000000000000..e2b03afef2c8
> --- /dev/null
> +++ b/drivers/gpu/drm/panel/bpf/progs/panel-bpf-mipi-dsi.h
[ ... ]
> diff --git a/include/drm/drm_panel_dsi_bpf.h b/include/drm/drm_panel_dsi_bpf.h
> deleted file mode 100644
> index 02d4707fd0a0..000000000000
> --- a/include/drm/drm_panel_dsi_bpf.h
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0 */
> -#ifndef __DRM_PANEL_DSI_BPF_H__
> -#define __DRM_PANEL_DSI_BPF_H__
> -
> -#include <linux/bpf.h>
> -
> -struct mipi_dsi_device;
> -struct drm_panel;
> -
> -#define DSI_BPF_PANEL_ID_LEN 64
> -
> -/**
> - * struct dsi_bpf_ctx - Context passed to BPF panel programs
> - * @panel: The drm_panel this callback operates on (private)
> - */
> -struct dsi_bpf_ctx {
> - struct drm_panel *panel;
> -};
> -
> -/**
> - * struct drm_panel_dsi_bpf_ops - BPF struct_ops for MIPI-DSI panels
> - * @panel_id: Device identifier for matching. On DT systems this holds
> - * the panel's compatible string. Firmware-agnostic to allow future
> - * ACPI support. Written before load, immutable after.
> - * @panel_prepare: Called to power on the panel and send init commands.
> - * Must enable regulators, toggle GPIOs, and send the DSI init
> - * sequence. Sleepable.
> - * @panel_unprepare: Called to power off the panel. Must send shutdown
> - * commands, assert reset, and disable regulators. Sleepable.
> - * @panel_enable: Optional. Called after video stream starts, for panels
> - * that need post-video-start DSI commands. Sleepable.
> - * @panel_disable: Optional. Called before video stream stops. Sleepable.
> - * @set_brightness: Optional. Called to set backlight brightness via DSI
> - * commands. Sleepable.
> - */
> -struct drm_panel_dsi_bpf_ops {
> - char panel_id[DSI_BPF_PANEL_ID_LEN];
> -
> - /* private: internal bookkeeping */
> - struct drm_panel *panel;
> -
> - /* public: */
> - int (*panel_prepare)(struct dsi_bpf_ctx *ctx);
> - int (*panel_unprepare)(struct dsi_bpf_ctx *ctx);
> - int (*panel_enable)(struct dsi_bpf_ctx *ctx);
> - int (*panel_disable)(struct dsi_bpf_ctx *ctx);
> - int (*set_brightness)(struct dsi_bpf_ctx *ctx, u32 brightness);
> -};
> -
> -#endif /* __DRM_PANEL_DSI_BPF_H__ */
The commit message describes adding the BPF-side header and Makefile, but
doesn't mention removing include/drm/drm_panel_dsi_bpf.h. The header was
added one patch earlier by 095e3b42d5ca and contains a stale ABI definition
(struct drm_panel_dsi_bpf_ops with dsi_bpf_ctx) that conflicts with the
real definition in drivers/gpu/drm/panel/bpf/panel-bpf-mipi-dsi.h.
Why is the file being removed as a side effect here rather than being
excluded from the earlier patch?
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/36644629998
next prev parent reply other threads:[~2026-09-29 23:44 UTC|newest]
Thread overview: 51+ 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
2026-09-30 13:32 ` Neil Armstrong
2026-10-01 7:09 ` Maxime Ripard
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 [this message]
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-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-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-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=052fc5fccb1cfb3a9bb4751e68080c92bc0e1759be9d1dc42972f2fe6f822976@mail.kernel.org \
--to=bot+bpf-ci@kernel.org \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=aesteve@redhat.com \
--cc=airlied@gmail.com \
--cc=andrii@kernel.org \
--cc=andrzej.hajda@intel.com \
--cc=ast@kernel.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bentiss@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=conor+dt@kernel.org \
--cc=daniel@iogearbox.net \
--cc=dave.stevenson@raspberrypi.com \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=eddyz87@gmail.com \
--cc=florian.fainelli@broadcom.com \
--cc=ihor.solodrai@linux.dev \
--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=martin.lau@kernel.org \
--cc=mason@kernel.org \
--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=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=yonghong.song@linux.dev \
/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®