mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3 0/9] media: Add support for Broadcom/RPi BCM2835 ISP
@ 2026-07-17 11:04 Jai Luthra
  2026-07-17 11:04 ` [PATCH v3 1/9] platform/raspberrypi: vchiq-mmal: Include missing headers Jai Luthra
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Jai Luthra @ 2026-07-17 11:04 UTC (permalink / raw)
  To: Florian Fainelli, Tomasz Figa, Marek Szyprowski,
	Mauro Carvalho Chehab, Raspberry Pi Kernel Maintenance
  Cc: Laurent Pinchart, Kieran Bingham, Dave Stevenson, Naushir Patuck,
	Stefan Wahren, Jacopo Mondi, Daniel Scally, linux-media,
	linux-rpi-kernel, linux-kernel, Jai Luthra, Dave Stevenson,
	Umang Jain

Hi,

This series adds initial support for Broadcom/Raspberry Pi BCM2835 ISP
present on older Raspberry Pi boards.

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 baseline driver was taken from the one present in the downstream
raspberrypi 6.12 tree (which was posted as v1 with minor cleanups).

Since then the driver has been significantly modified, switching away
from custom V4L2 controls to parameter buffers for ISP configuration,
and many other fixes.

You can test this series with libcamera, using the following branch:
https://github.com/jailuthra/libcamera/tree/pi4-upstream

Thanks,
Jai

Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
---
Changes in v3:
- Rebase on v7.2-rc1
- Split PATCH 1 to add missing incles before moving the headers
- Update commit messages with Laurent's suggestions
- Drop redundant buffer list and locks for params as we send them
  immediately to the firmware in .buf_queue
- Drop the now empty .stop_streaming() for params node
- Minor cleanups
- Link to v2: https://lore.kernel.org/r/20260210-b4-vchiq-isp-v2-0-4403944152fe@ideasonboard.com

Changes in v2:
- Replace custom V4L2 controls (V4L2_CID_USER_BCM2835_ISP_*) with the
  V4L2 extensible parameters framework via a dedicated metadata output
  node (bcm2835-isp-params). Split params handling into new file
  bcm2835-isp-params.c.
- Add AWB gains and digital gain as extensible parameter block types
  instead of standard V4L2 integer controls.
- Use MEDIA_ENT_F_PROC_VIDEO_ISP instead of MEDIA_ENT_F_PROC_VIDEO_SCALER
  for the media entity function.
- Rework media controller registration: let video device nodes handle
  their own entity registration, removing the manual entity/interface
  creation in media_controller_register_node().
- Propagate colorspace, ycbcr_enc, xfer_func, and quantization properly
  through g_fmt/s_fmt.
- Fold the stats/params FourCC additions (previously a separate commit)
  into this patch.
- Drop the custom CID base commit (no longer needed).
- Update documentation.
- Link to v1: https://lore.kernel.org/r/20260113-b4-vchiq-isp-v1-0-ea0b300bffc8@ideasonboard.com

---
Dave Stevenson (1):
      media: videobuf2: Allow exporting of a struct dmabuf

Jai Luthra (6):
      platform/raspberrypi: vchiq-mmal: Include missing headers
      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 (2):
      media: platform: broadcom: Add bcm2835-isp driver
      platform/raspberrypi: vchiq: Load bcm2835_isp driver from vchiq

 Documentation/admin-guide/media/bcm2835-isp.dot    |   14 +
 Documentation/admin-guide/media/bcm2835-isp.rst    |   78 +
 Documentation/admin-guide/media/v4l-drivers.rst    |    1 +
 .../userspace-api/media/v4l/meta-formats.rst       |    1 +
 .../media/v4l/metafmt-bcm2835-isp.rst              |  101 ++
 MAINTAINERS                                        |   12 +-
 drivers/media/common/videobuf2/videobuf2-core.c    |   21 +-
 drivers/media/platform/broadcom/Kconfig            |   18 +-
 drivers/media/platform/broadcom/Makefile           |    3 +-
 .../media/platform/broadcom/bcm2835-isp/Kconfig    |   15 +
 .../media/platform/broadcom/bcm2835-isp/Makefile   |    4 +
 .../broadcom/bcm2835-isp/bcm2835-isp-common.h      |   51 +
 .../broadcom/bcm2835-isp/bcm2835-isp-fmts.h        |  558 ++++++++
 .../broadcom/bcm2835-isp/bcm2835-isp-params.c      |  470 ++++++
 .../broadcom/bcm2835-isp/bcm2835-v4l2-isp.c        | 1502 ++++++++++++++++++++
 .../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               |    2 +
 .../raspberrypi/vchiq-interface/vchiq_arm.c        |    2 +
 .../platform/raspberrypi/vchiq-mmal/mmal-vchiq.c   |    9 +-
 .../linux/raspberrypi}/mmal-common.h               |    4 +
 .../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                   |  530 +++++++
 include/uapi/linux/videodev2.h                     |    2 +
 35 files changed, 3579 insertions(+), 25 deletions(-)
---
base-commit: 728e68a889bcf257b1e67298b12c360e5c3a13e0
change-id: 20250923-b4-vchiq-isp-7e8c22c2860c
prerequisite-message-id: 20260717-b4-vc-sm-cma-v3-0-6c4e77804e5d@ideasonboard.com
prerequisite-patch-id: 07e50207cc947f44e1d626b31d0ace7e12a8f3a1
prerequisite-patch-id: 3d82a2605799686668729fdc2677c3f6b7c2aa0d
prerequisite-patch-id: 3022f05545dcfdaf05522f8ce1ebd8b9e3bc412f
prerequisite-patch-id: ad833b78f90ce3081e470caf70e601fc573bb52d
prerequisite-patch-id: 1898d91213e9bd75be3109180527fb0caf6d7174
prerequisite-patch-id: d0cfc49c673c8c4a4c13d44a547104c24f57cb49

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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-07-17 11:36 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-17 11:04 [PATCH v3 0/9] media: Add support for Broadcom/RPi BCM2835 ISP Jai Luthra
2026-07-17 11:04 ` [PATCH v3 1/9] platform/raspberrypi: vchiq-mmal: Include missing headers Jai Luthra
2026-07-17 11:04 ` [PATCH v3 2/9] platform/raspberrypi: vchiq-mmal: Move headers to include/linux Jai Luthra
2026-07-17 11:04 ` [PATCH v3 3/9] platform/raspberrypi: vchiq-mmal: Support ISP parameters and stats Jai Luthra
2026-07-17 11:04 ` [PATCH v3 4/9] platform/raspberrypi: vchiq-mmal: Support bayer and gray formats Jai Luthra
2026-07-17 11:04 ` [PATCH v3 5/9] platform/raspberrypi: vchiq: Add helpers for vchiq driver data Jai Luthra
2026-07-17 11:04 ` [PATCH v3 6/9] media: videobuf2: Allow exporting of a struct dmabuf Jai Luthra
2026-07-17 11:04 ` [PATCH v3 7/9] media: platform: broadcom: Move unicam driver to subdir Jai Luthra
2026-07-17 11:36   ` Jai Luthra
2026-07-17 11:04 ` [PATCH v3 8/9] media: platform: broadcom: Add bcm2835-isp driver Jai Luthra
2026-07-17 11:04 ` [PATCH v3 9/9] platform/raspberrypi: vchiq: Load bcm2835_isp driver from vchiq Jai Luthra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox