Commit aa125180 authored by Jai Luthra's avatar Jai Luthra Committed by Greg Kroah-Hartman
Browse files

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: default avatarJai Luthra <jai.luthra@ideasonboard.com>
Link: https://patch.msgid.link/20251029-vchiq-destage-v3-6-da8d6c83c2c5@ideasonboard.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b178ad64
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4828,6 +4828,7 @@ S: Maintained
T:	git https://github.com/broadcom/stblinux.git
F:	Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
F:	drivers/pci/controller/pcie-brcmstb.c
F:	drivers/platform/raspberrypi/vchiq-*
F:	drivers/staging/vc04_services
F:	include/linux/raspberrypi/vchiq*
N:	bcm2711
+2 −0
Original line number Diff line number Diff line
@@ -18,3 +18,5 @@ source "drivers/platform/surface/Kconfig"
source "drivers/platform/x86/Kconfig"

source "drivers/platform/arm64/Kconfig"

source "drivers/platform/raspberrypi/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -13,3 +13,4 @@ obj-$(CONFIG_CHROME_PLATFORMS) += chrome/
obj-$(CONFIG_CZNIC_PLATFORMS)	+= cznic/
obj-$(CONFIG_SURFACE_PLATFORMS)	+= surface/
obj-$(CONFIG_ARM64_PLATFORM_DEVICES)	+= arm64/
obj-$(CONFIG_BCM2835_VCHIQ)	+= raspberrypi/
+50 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0

menuconfig BCM_VIDEOCORE
	tristate "Broadcom VideoCore support"
	depends on OF
	depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
	default y
	help
		Support for Broadcom VideoCore services including
		the BCM2835 family of products which is used
		by the Raspberry PI.

if BCM_VIDEOCORE

config BCM2835_VCHIQ
	tristate "BCM2835 VCHIQ"
	depends on HAS_DMA
	imply VCHIQ_CDEV
	help
		Broadcom BCM2835 and similar SoCs have a VPU called VideoCore.
		This config enables the VCHIQ driver, which implements a
		messaging interface between the kernel and the firmware running
		on VideoCore. Other drivers use this interface to communicate to
		the VPU. More specifically, the VCHIQ driver is used by
		audio/video and camera drivers as well as for implementing MMAL
		API, which is in turn used by several multimedia services on the
		BCM2835 family of SoCs.

		Defaults to Y when the Broadcom Videocore services are included
		in the build, N otherwise.

if BCM2835_VCHIQ

config VCHIQ_CDEV
	bool "VCHIQ Character Driver"
	help
		Enable the creation of VCHIQ character driver. The cdev exposes
		ioctls used by userspace libraries and testing tools to interact
		with VideoCore, via the VCHIQ core driver (Check BCM2835_VCHIQ
		for more info).

		This can be set to 'N' if the VideoCore communication is not
		needed by userspace but only by other kernel modules
		(like bcm2835-audio).

		If not sure, set this to 'Y'.

endif

endif
+14 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0

obj-$(CONFIG_BCM2835_VCHIQ)	+= vchiq.o

vchiq-objs := \
   vchiq-interface/vchiq_core.o  \
   vchiq-interface/vchiq_arm.o \
   vchiq-interface/vchiq_bus.o \
   vchiq-interface/vchiq_debugfs.o \

ifdef CONFIG_VCHIQ_CDEV
vchiq-objs += vchiq-interface/vchiq_dev.o
endif
Loading