[PATCH 00/10] media: Add support for Raspberry Pi 4 ISP

Jai Luthra jai.luthra at ideasonboard.com
Tue Jan 13 01:05:20 PST 2026


Hi,

This series adds support for the ISP used in Raspberry Pi 4 (and earlier
variants) by adding the bcm2835-isp V4L2 driver.

The underlying hardware for the ISP is accessed through the VideoCore
VPU, via the VCHIQ/MMAL interface that was recently destaged under
platform/raspberrypi. The ISP driver, and thus this series depends on
VCSM CMA driver for shared memory support (for lens shading buffers):

https://lore.kernel.org/all/20260105-b4-vc-sm-cma-v2-0-4daea749ced9@ideasonboard.com/

The ISP driver introduced in this series has been taken from the one
present in the downstream raspberrypi 6.12 tree, squashing together
various commits, along with minor cleanups and renaming directories. For
testing it with libcamera, please use this branch that supports upstream
unicam and the correct base ID for ISP controls:

https://github.com/jailuthra/libcamera/tree/pi4-upstream

Thanks,
Jai

Signed-off-by: Jai Luthra <jai.luthra at ideasonboard.com>
---
Dave Stevenson (1):
      media: videobuf2: Allow exporting of a struct dmabuf

Jai Luthra (5):
      platform/raspberrypi: vchiq-mmal: Move headers to include/linux
      platform/raspberrypi: vchiq-mmal: Support ISP parameters and stats
      platform/raspberrypi: vchiq-mmal: Support bayer and gray formats
      platform/raspberrypi: vchiq: Add helpers for vchiq driver data
      media: platform: broadcom: Move unicam driver to subdir

Naushir Patuck (4):
      media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver
      media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type
      media: platform: broadcom: Add bcm2835-isp driver
      platform/raspberrypi: vchiq: Load bcm2835_isp driver from vchiq

 Documentation/admin-guide/media/bcm2835-isp.rst    |  127 ++
 .../userspace-api/media/drivers/index.rst          |    1 +
 .../userspace-api/media/v4l/meta-formats.rst       |    1 +
 .../media/v4l/pixfmt-meta-bcm2835-isp-stats.rst    |   35 +
 MAINTAINERS                                        |   12 +-
 drivers/media/common/videobuf2/videobuf2-core.c    |   21 +-
 drivers/media/platform/broadcom/Kconfig            |   23 +-
 drivers/media/platform/broadcom/Makefile           |    3 +-
 .../media/platform/broadcom/bcm2835-isp/Kconfig    |   14 +
 .../media/platform/broadcom/bcm2835-isp/Makefile   |    4 +
 .../broadcom/bcm2835-isp/bcm2835-isp-ctrls.h       |   73 +
 .../broadcom/bcm2835-isp/bcm2835-isp-fmts.h        |  558 ++++++
 .../broadcom/bcm2835-isp/bcm2835-v4l2-isp.c        | 1836 ++++++++++++++++++++
 .../media/platform/broadcom/bcm2835-unicam/Kconfig |   23 +
 .../platform/broadcom/bcm2835-unicam/Makefile      |    3 +
 .../{ => bcm2835-unicam}/bcm2835-unicam-regs.h     |    0
 .../broadcom/{ => bcm2835-unicam}/bcm2835-unicam.c |    0
 drivers/media/v4l2-core/v4l2-ioctl.c               |    1 +
 .../raspberrypi/vchiq-interface/vchiq_arm.c        |    2 +
 .../platform/raspberrypi/vchiq-mmal/mmal-vchiq.c   |    9 +-
 .../linux/raspberrypi}/mmal-common.h               |    2 +
 .../linux/raspberrypi}/mmal-encodings.h            |   68 +
 .../linux/raspberrypi}/mmal-msg-common.h           |    0
 .../linux/raspberrypi}/mmal-msg-format.h           |    0
 .../linux/raspberrypi}/mmal-msg-port.h             |    0
 .../linux/raspberrypi}/mmal-msg.h                  |    0
 .../linux/raspberrypi}/mmal-parameters.h           |   86 +
 .../linux/raspberrypi}/mmal-vchiq.h                |    0
 include/linux/raspberrypi/vchiq_arm.h              |    1 +
 include/linux/raspberrypi/vchiq_bus.h              |   10 +
 include/media/videobuf2-core.h                     |   15 +
 include/uapi/linux/bcm2835-isp.h                   |  347 ++++
 include/uapi/linux/v4l2-controls.h                 |    6 +
 include/uapi/linux/videodev2.h                     |    1 +
 34 files changed, 3252 insertions(+), 30 deletions(-)
---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20250923-b4-vchiq-isp-7e8c22c2860c
prerequisite-message-id: 20260105-b4-vc-sm-cma-v2-0-4daea749ced9 at ideasonboard.com
prerequisite-patch-id: 07e50207cc947f44e1d626b31d0ace7e12a8f3a1
prerequisite-patch-id: 3d82a2605799686668729fdc2677c3f6b7c2aa0d
prerequisite-patch-id: f65e3f6e8db823fcfc37421da10a76f92cf56d9d
prerequisite-patch-id: dbfc2fc4237c738e499e802be972dd8f2736a714
prerequisite-patch-id: 1898d91213e9bd75be3109180527fb0caf6d7174
prerequisite-patch-id: d0cfc49c673c8c4a4c13d44a547104c24f57cb49

Best regards,
-- 
Jai Luthra <jai.luthra at ideasonboard.com>




More information about the linux-arm-kernel mailing list