Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

platform/raspberrypi: Destage VCHIQ interface

Destage the VCHIQ interface driver to drivers/platform/raspberrypi.

There is still the remaining TODO item of improving the documentation,
which can be handled post destaging.

Secondly, multimedia drivers like codec and ISP that rely on this
interface need to be upstreamed. And lastly, the drivers that facilitate
the shared memory between VideoCore and Linux, like the vc-sm-cma driver
and vc_mem char driver also need to be upstreamed.

Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
Link: https://patch.msgid.link/20251029-vchiq-destage-v3-6-da8d6c83c2c5@ideasonboard.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Jai Luthra and committed by
Greg Kroah-Hartman
aa125180 b178ad64

+68 -57
+1
MAINTAINERS
··· 4828 4828 T: git https://github.com/broadcom/stblinux.git 4829 4829 F: Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml 4830 4830 F: drivers/pci/controller/pcie-brcmstb.c 4831 + F: drivers/platform/raspberrypi/vchiq-* 4831 4832 F: drivers/staging/vc04_services 4832 4833 F: include/linux/raspberrypi/vchiq* 4833 4834 N: bcm2711
+2
drivers/platform/Kconfig
··· 18 18 source "drivers/platform/x86/Kconfig" 19 19 20 20 source "drivers/platform/arm64/Kconfig" 21 + 22 + source "drivers/platform/raspberrypi/Kconfig"
+1
drivers/platform/Makefile
··· 13 13 obj-$(CONFIG_CZNIC_PLATFORMS) += cznic/ 14 14 obj-$(CONFIG_SURFACE_PLATFORMS) += surface/ 15 15 obj-$(CONFIG_ARM64_PLATFORM_DEVICES) += arm64/ 16 + obj-$(CONFIG_BCM2835_VCHIQ) += raspberrypi/
+50
drivers/platform/raspberrypi/Kconfig
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + 3 + menuconfig BCM_VIDEOCORE 4 + tristate "Broadcom VideoCore support" 5 + depends on OF 6 + depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE) 7 + default y 8 + help 9 + Support for Broadcom VideoCore services including 10 + the BCM2835 family of products which is used 11 + by the Raspberry PI. 12 + 13 + if BCM_VIDEOCORE 14 + 15 + config BCM2835_VCHIQ 16 + tristate "BCM2835 VCHIQ" 17 + depends on HAS_DMA 18 + imply VCHIQ_CDEV 19 + help 20 + Broadcom BCM2835 and similar SoCs have a VPU called VideoCore. 21 + This config enables the VCHIQ driver, which implements a 22 + messaging interface between the kernel and the firmware running 23 + on VideoCore. Other drivers use this interface to communicate to 24 + the VPU. More specifically, the VCHIQ driver is used by 25 + audio/video and camera drivers as well as for implementing MMAL 26 + API, which is in turn used by several multimedia services on the 27 + BCM2835 family of SoCs. 28 + 29 + Defaults to Y when the Broadcom Videocore services are included 30 + in the build, N otherwise. 31 + 32 + if BCM2835_VCHIQ 33 + 34 + config VCHIQ_CDEV 35 + bool "VCHIQ Character Driver" 36 + help 37 + Enable the creation of VCHIQ character driver. The cdev exposes 38 + ioctls used by userspace libraries and testing tools to interact 39 + with VideoCore, via the VCHIQ core driver (Check BCM2835_VCHIQ 40 + for more info). 41 + 42 + This can be set to 'N' if the VideoCore communication is not 43 + needed by userspace but only by other kernel modules 44 + (like bcm2835-audio). 45 + 46 + If not sure, set this to 'Y'. 47 + 48 + endif 49 + 50 + endif
+14
drivers/platform/raspberrypi/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + 3 + obj-$(CONFIG_BCM2835_VCHIQ) += vchiq.o 4 + 5 + vchiq-objs := \ 6 + vchiq-interface/vchiq_core.o \ 7 + vchiq-interface/vchiq_arm.o \ 8 + vchiq-interface/vchiq_bus.o \ 9 + vchiq-interface/vchiq_debugfs.o \ 10 + 11 + ifdef CONFIG_VCHIQ_CDEV 12 + vchiq-objs += vchiq-interface/vchiq_dev.o 13 + endif 14 +
-45
drivers/staging/vc04_services/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - menuconfig BCM_VIDEOCORE 3 - tristate "Broadcom VideoCore support" 4 - depends on OF 5 - depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE) 6 - default y 7 - help 8 - Support for Broadcom VideoCore services including 9 - the BCM2835 family of products which is used 10 - by the Raspberry PI. 11 - 12 2 if BCM_VIDEOCORE 13 - 14 - config BCM2835_VCHIQ 15 - tristate "BCM2835 VCHIQ" 16 - depends on HAS_DMA 17 - imply VCHIQ_CDEV 18 - help 19 - Broadcom BCM2835 and similar SoCs have a VPU called VideoCore. 20 - This config enables the VCHIQ driver, which implements a 21 - messaging interface between the kernel and the firmware running 22 - on VideoCore. Other drivers use this interface to communicate to 23 - the VPU. More specifically, the VCHIQ driver is used by 24 - audio/video and camera drivers as well as for implementing MMAL 25 - API, which is in turn used by several multimedia services on the 26 - BCM2835 family of SoCs. 27 - 28 - Defaults to Y when the Broadcom Videocore services are included 29 - in the build, N otherwise. 30 - 31 - if BCM2835_VCHIQ 32 - 33 - config VCHIQ_CDEV 34 - bool "VCHIQ Character Driver" 35 - help 36 - Enable the creation of VCHIQ character driver. The cdev exposes 37 - ioctls used by userspace libraries and testing tools to interact 38 - with VideoCore, via the VCHIQ core driver (Check BCM2835_VCHIQ 39 - for more info). 40 - 41 - This can be set to 'N' if the VideoCore communication is not 42 - needed by userspace but only by other kernel modules 43 - (like bcm2835-audio). 44 - 45 - If not sure, set this to 'Y'. 46 - 47 - endif 48 3 49 4 source "drivers/staging/vc04_services/bcm2835-audio/Kconfig" 50 5
-12
drivers/staging/vc04_services/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - obj-$(CONFIG_BCM2835_VCHIQ) += vchiq.o 3 - 4 - vchiq-objs := \ 5 - interface/vchiq_arm/vchiq_core.o \ 6 - interface/vchiq_arm/vchiq_arm.o \ 7 - interface/vchiq_arm/vchiq_bus.o \ 8 - interface/vchiq_arm/vchiq_debugfs.o \ 9 - 10 - ifdef CONFIG_VCHIQ_CDEV 11 - vchiq-objs += interface/vchiq_arm/vchiq_dev.o 12 - endif 13 - 14 2 obj-$(CONFIG_SND_BCM2835) += bcm2835-audio/ 15 3 obj-$(CONFIG_BCM2835_VCHIQ_MMAL) += vchiq-mmal/ 16 4
drivers/staging/vc04_services/interface/TESTING drivers/platform/raspberrypi/vchiq-interface/TESTING
drivers/staging/vc04_services/interface/TODO drivers/platform/raspberrypi/vchiq-interface/TODO
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c drivers/platform/raspberrypi/vchiq-interface/vchiq_arm.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c drivers/platform/raspberrypi/vchiq-interface/vchiq_bus.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c drivers/platform/raspberrypi/vchiq-interface/vchiq_core.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c drivers/platform/raspberrypi/vchiq-interface/vchiq_debugfs.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_ioctl.h drivers/platform/raspberrypi/vchiq-interface/vchiq_ioctl.h