[PATCH v3 0/6] platform/raspberrypi: Add Broadcom Videocore shared memory support

Jai Luthra posted 6 patches 1 week ago
MAINTAINERS                                        |    7 +
drivers/platform/raspberrypi/Kconfig               |    2 +
drivers/platform/raspberrypi/Makefile              |    1 +
drivers/platform/raspberrypi/vc-sm-cma/Kconfig     |    9 +
drivers/platform/raspberrypi/vc-sm-cma/Makefile    |    5 +
drivers/platform/raspberrypi/vc-sm-cma/vc_sm.c     | 1571 ++++++++++++++++++++
drivers/platform/raspberrypi/vc-sm-cma/vc_sm.h     |   83 ++
.../raspberrypi/vc-sm-cma/vc_sm_cma_vchi.c         |  507 +++++++
.../raspberrypi/vc-sm-cma/vc_sm_cma_vchi.h         |   63 +
.../platform/raspberrypi/vc-sm-cma/vc_sm_defs.h    |  298 ++++
.../raspberrypi/vchiq-interface/vchiq_arm.c        |   13 +-
drivers/platform/raspberrypi/vchiq-mmal/Kconfig    |    3 +-
.../platform/raspberrypi/vchiq-mmal/mmal-common.h  |    4 +
.../platform/raspberrypi/vchiq-mmal/mmal-vchiq.c   |   85 +-
.../platform/raspberrypi/vchiq-mmal/mmal-vchiq.h   |    1 +
include/linux/raspberrypi/vc_sm_cma_ioctl.h        |  110 ++
include/linux/raspberrypi/vc_sm_knl.h              |   75 +
include/linux/raspberrypi/vchiq_arm.h              |    9 +
18 files changed, 2827 insertions(+), 19 deletions(-)
[PATCH v3 0/6] platform/raspberrypi: Add Broadcom Videocore shared memory support
Posted by Jai Luthra 1 week ago
Hi,

The vc-sm-cma driver allows contiguous memory blocks to be imported into
the VideoCore VPU memory map. This series adds support for this driver
and changes to VCHIQ MMAL layer required to get it functional.

These changes have lived in the staging directory of the downstream
Raspberry Pi tree since quite some time, but are necessary for getting
the VCHIQ based peripherals like the ISP and codec functional in
mainline.

Thanks,
	Jai

Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
---
Changes in v3:
- Rebase on v7.2-rc1
- Fix lkp bot errors with Kconfig dependencies
- Switch from kzalloc with sizeof to kzalloc_obj
- Link to v2: https://lore.kernel.org/r/20260105-b4-vc-sm-cma-v2-0-4daea749ced9@ideasonboard.com

Changes in v2:
- Drop patches that are not related to vc-sm-cma, or used for codec and
  not ISP, so that is v1 PATCH 1, 2, 4, 5, 6, 7, 8, 12
- Move v1 PATCH 11 to the top, adding a Fixes tag
- Don't use global singletons for storing `struct vchiq_device` in
  VCHIQ, instead converting the existing device drivers (audio) to be
  stored inside `struct vchiq_drv_mgmt`
- Update the vc-sm-cma driver to latest standards, like:
    - Replace MODULE_ALIAS call with a proper device id_table
    - Add kernel-doc comments for exported functions
    - Move exported functions to a header under include/linux for use in
      MMAL (and later V4L2 ISP and codec drivers)
    - Use xarray instead of deprecated idr to map an integer ID to
      imported/allocated buffer pointers
    - Drop unnecessary pr_debug calls
    - Replacing pr_xxx use with dev_xxx wherever possible
    - Clean up stray comments
- Link to v1: https://lore.kernel.org/r/20251031-b4-vc-sm-cma-v1-0-0dd5c0ec3f5c@ideasonboard.com

---
Dave Stevenson (5):
      platform/raspberrypi: vchiq-mmal: Reset buffers_with_vpu on port_enable
      platform/raspberrypi: Add VideoCore shared memory support
      platform/raspberrypi: vchiq-mmal: Use vc-sm-cma to support zero copy
      platform/raspberrypi: vchiq-mmal: Support sending data to MMAL ports
      platform/raspberrypi: vchiq: Register vc-sm-cma as a platform driver

Jai Luthra (1):
      platform/raspberrypi: vchiq: Store audio device in driver management struct

 MAINTAINERS                                        |    7 +
 drivers/platform/raspberrypi/Kconfig               |    2 +
 drivers/platform/raspberrypi/Makefile              |    1 +
 drivers/platform/raspberrypi/vc-sm-cma/Kconfig     |    9 +
 drivers/platform/raspberrypi/vc-sm-cma/Makefile    |    5 +
 drivers/platform/raspberrypi/vc-sm-cma/vc_sm.c     | 1571 ++++++++++++++++++++
 drivers/platform/raspberrypi/vc-sm-cma/vc_sm.h     |   83 ++
 .../raspberrypi/vc-sm-cma/vc_sm_cma_vchi.c         |  507 +++++++
 .../raspberrypi/vc-sm-cma/vc_sm_cma_vchi.h         |   63 +
 .../platform/raspberrypi/vc-sm-cma/vc_sm_defs.h    |  298 ++++
 .../raspberrypi/vchiq-interface/vchiq_arm.c        |   13 +-
 drivers/platform/raspberrypi/vchiq-mmal/Kconfig    |    3 +-
 .../platform/raspberrypi/vchiq-mmal/mmal-common.h  |    4 +
 .../platform/raspberrypi/vchiq-mmal/mmal-vchiq.c   |   85 +-
 .../platform/raspberrypi/vchiq-mmal/mmal-vchiq.h   |    1 +
 include/linux/raspberrypi/vc_sm_cma_ioctl.h        |  110 ++
 include/linux/raspberrypi/vc_sm_knl.h              |   75 +
 include/linux/raspberrypi/vchiq_arm.h              |    9 +
 18 files changed, 2827 insertions(+), 19 deletions(-)
---
base-commit: 728e68a889bcf257b1e67298b12c360e5c3a13e0
change-id: 20251030-b4-vc-sm-cma-f6727c39cd25

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