[PATCH v2 10/15] staging: vc04_services: bcm2835-isp: Add a more complex ISP processing component

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat Nov 18 10:56:38 PST 2023


Hi Stefan,

On Sat, Nov 18, 2023 at 03:53:41PM +0100, Stefan Wahren wrote:
> Am 09.11.23 um 22:03 schrieb Umang Jain:
> > From: Naushir Patuck <naush at raspberrypi.com>
> >
> > Driver for the BCM2835 ISP hardware block.  This driver uses the MMAL
> > component to program the ISP hardware through the VC firmware.
> >
> > The ISP component can produce two video stream outputs, and Bayer
> > image statistics. This can't be encompassed in a simple V4L2
> > M2M device, so create a new device that registers 4 video nodes.
> 
> sorry, i don't have much knowledge about V4L2, so someone else should
> review this in depth.
> 
> But from my PoV, patch 11, 12, 13 and 15 should be squash into this one.

For 11 and 12, I agree. 13 is a bit of a workaround for a missing
feature in V4L2, and while it's acceptable today, having it as a
separate commit may make it easier to revert it in the future when the
V4L2 API will be extended (that may or may not happen, and I wouldn't
count on it happening quickly in any case). I would keep patch 15
separate as it's not part of this driver.

> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> > ---
> >   MAINTAINERS                                   |    9 +
> >   drivers/staging/vc04_services/Kconfig         |    2 +
> >   drivers/staging/vc04_services/Makefile        |    1 +
> >   .../staging/vc04_services/bcm2835-isp/Kconfig |   14 +
> >   .../vc04_services/bcm2835-isp/Makefile        |    4 +
> >   .../bcm2835-isp/bcm2835-isp-ctrls.h           |   72 +
> >   .../bcm2835-isp/bcm2835-isp-fmts.h            |  482 +++++
> >   .../bcm2835-isp/bcm2835-v4l2-isp.c            | 1712 +++++++++++++++++
> >   .../vc04_services/vchiq-mmal/mmal-encodings.h |    4 +
> >   .../vchiq-mmal/mmal-parameters.h              |  165 +-
> >   include/uapi/linux/bcm2835-isp.h              |   27 +
> >   11 files changed, 2491 insertions(+), 1 deletion(-)
> >   create mode 100644 drivers/staging/vc04_services/bcm2835-isp/Kconfig
> >   create mode 100644 drivers/staging/vc04_services/bcm2835-isp/Makefile
> >   create mode 100644 drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-ctrls.h
> >   create mode 100644 drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp-fmts.h
> >   create mode 100644 drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 0748cc15588c..8670a8d95400 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -3976,6 +3976,15 @@ F:	Documentation/devicetree/bindings/mips/brcm/
> >   F:	arch/mips/bcm47xx/*
> >   F:	arch/mips/include/asm/mach-bcm47xx/*
> >
> > +BROADCOM BCM2835 ISP DRIVER
> > +M:	Raspberry Pi Kernel Maintenance <kernel-list at raspberrypi.com>
> > +L:	linux-media at vger.kernel.org
> > +S:	Maintained
> > +F:	Documentation/media/uapi/v4l/pixfmt-meta-bcm2835-isp-stats.rst
> > +F:	Documentation/media/v4l-drivers/bcm2835-isp.rst
> > +F:	drivers/staging/vc04_services/bcm2835-isp
> > +F:	include/uapi/linux/bcm2835-isp.h
> > +
> >   BROADCOM BCM4908 ETHERNET DRIVER
> >   M:	Rafał Miłecki <rafal at milecki.pl>
> >   R:	Broadcom internal kernel review list <bcm-kernel-feedback-list at broadcom.com>
> > diff --git a/drivers/staging/vc04_services/Kconfig b/drivers/staging/vc04_services/Kconfig
> > index 6c0e77d64376..e71e5a8b820a 100644
> > --- a/drivers/staging/vc04_services/Kconfig
> > +++ b/drivers/staging/vc04_services/Kconfig
> > @@ -44,6 +44,8 @@ source "drivers/staging/vc04_services/bcm2835-audio/Kconfig"
> >
> >   source "drivers/staging/vc04_services/bcm2835-camera/Kconfig"
> >
> > +source "drivers/staging/vc04_services/bcm2835-isp/Kconfig"
> > +
> >   source "drivers/staging/vc04_services/vchiq-mmal/Kconfig"
> >
> >   source "drivers/staging/vc04_services/vc-sm-cma/Kconfig"
> > diff --git a/drivers/staging/vc04_services/Makefile b/drivers/staging/vc04_services/Makefile
> > index 1f61a263f22d..2cebf92525a0 100644
> > --- a/drivers/staging/vc04_services/Makefile
> > +++ b/drivers/staging/vc04_services/Makefile
> > @@ -16,3 +16,4 @@ obj-$(CONFIG_SND_BCM2835)		+= bcm2835-audio/
> >   obj-$(CONFIG_VIDEO_BCM2835)		+= bcm2835-camera/
> >   obj-$(CONFIG_BCM2835_VCHIQ_MMAL)	+= vchiq-mmal/
> >   obj-$(CONFIG_BCM_VC_SM_CMA)		+= vc-sm-cma/
> > +obj-$(CONFIG_VIDEO_ISP_BCM2835) 	+= bcm2835-isp/
> > diff --git a/drivers/staging/vc04_services/bcm2835-isp/Kconfig b/drivers/staging/vc04_services/bcm2835-isp/Kconfig
> > new file mode 100644
> > index 000000000000..6222799ebe16
> > --- /dev/null
> > +++ b/drivers/staging/vc04_services/bcm2835-isp/Kconfig
> > @@ -0,0 +1,14 @@
> > +config VIDEO_ISP_BCM2835
> > +	tristate "BCM2835 ISP support"
> > +	depends on MEDIA_SUPPORT
> > +	depends on VIDEO_DEV && (ARCH_BCM2835 || COMPILE_TEST)
> > +	depends on MEDIA_CONTROLLER
> > +	select BCM2835_VCHIQ_MMAL
> > +	select VIDEOBUF2_DMA_CONTIG
> > +	help
> > +	  This is the V4L2 driver for the Broadcom BCM2835 ISP hardware.
> 
> I think the description is not helpful for all users. Not everybody
> knows what ISP is for. Please describe it more for an end user.
> 
> > +	  This operates over the VCHIQ interface to a service running on
> > +	  VideoCore.
> > +
> > +	  To compile this driver as a module, choose M here: the module
> > +	  will be called bcm2835-isp.

-- 
Regards,

Laurent Pinchart



More information about the linux-arm-kernel mailing list