From: Umang Jain <umang.jain@ideasonboard.com> To: linux-media@vger.kernel.org, kernel-list@raspberrypi.com, linux-kernel@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-staging@lists.linux.dev, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com> Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>, Florian Fainelli <f.fainelli@gmail.com>, Naushir Patuck <naush@raspberrypi.com>, David Plowman <david.plowman@raspberrypi.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Umang Jain <umang.jain@ideasonboard.com> Subject: [PATCH 00/14] staging: vc04_services: bcm2835-isp support Date: Tue, 22 Nov 2022 03:17:08 +0530 [thread overview] Message-ID: <20221121214722.22563-1-umang.jain@ideasonboard.com> (raw) This series aims to upport bcm2835-isp from the RPi kernel [1] and is a independent subset of earlier series [2] posted to upport CSI-2/CCP2 receiver IP core("Unicam) + the ISP driver found in BCM283x and compatible SoCs (namely BCM2711). Unicam is still under active development to work with multistream support to get into mainline. Hence only the ISP driver will remain the primary area of this series. Patch (01-02)/14 adds a new driver named vc-sm-cma to handle memory sharing with the VC4 VPU. Patch 03/14 adds a small extension to videobuf2 to allow exporting as a dma_buf instead of a file-descriptor. Patch (04-05)/14 adds a couple of improvements/support for bcm2835-isp(event callback and zero-copy) to vchiq-mmal. Patch (06-09)/14 adds the core bcm2835-isp driver along with headers and format defintions. Patch (10-11)/14 deals with the colorspace support. Note: This is still WIP since the implementation of colorspace is still getting ironed out (especially around setting of colorspace flags handling). Patch 12/14 allows multiple instances of the ISP. Patch 13/14 adds a admin-guide document on bcm2835-isp. Patch 14/14 wires all this up with the vchiq-mmal driver. Testing: Tested with RPi Model 4B running linux mainline v6.1-rc6. To test end-to-end, I choose to cherry-pick the Unicam patches and OV5647 DT bindings from [1]). Once done, functional testing was conducted with libcamera[3] and its utility tools. Also note: Reviews given on [2] for the relevant ISP driver patches have been incorporated in this version. Known issues: - Colorspace handling - vc-sm-cma spamming kernel log with - pr_err("%s: Expecting an uncached alias for dma_addr %pad\n" [1]: https://github.com/raspberrypi/linux [2]: https://lore.kernel.org/linux-media/20200504092611.9798-1-laurent.pinchart@ideasonboard.com/ [3]: https://libcamera.org/getting-started.html Dave Stevenson (7): staging: vc04_services: Add new vc-sm-cma driver staging: vchiq_arm: Register vcsm-cma as a platform driver media: videobuf2: Allow exporting of a struct dmabuf staging: mmal-vchiq: Add support for event callbacks staging: mmal-vchiq: Use vc-sm-cma to support zero copy staging: mmal_vchiq: Add image formats to be used by bcm2835-isp uapi: bcm2835-isp: Add bcm2835-isp uapi header file David Plowman (2): vc04_services: bcm2835-isp: Allow formats with different colour spaces vc04_services: bcm2835-isp: Permit all sRGB colour spaces on ISP outputs Naushir Patuck (5): media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type staging: vc04_services: bcm2835-isp: Add a more complex ISP processing component staging: vc04_services: bcm2835_isp: Allow multiple users docs: admin-guide: media: bcm2835-isp: Add documentation for bcm2835-isp staging: vc04_services: vchiq: Load bcm2835_isp driver from vchiq .../admin-guide/media/bcm2835-isp.rst | 127 ++ .../userspace-api/media/drivers/index.rst | 1 + .../userspace-api/media/v4l/meta-formats.rst | 1 + .../v4l/pixfmt-meta-bcm2835-isp-stats.rst | 41 + MAINTAINERS | 9 + .../media/common/videobuf2/videobuf2-core.c | 36 +- drivers/media/v4l2-core/v4l2-ioctl.c | 1 + drivers/staging/vc04_services/Kconfig | 4 + drivers/staging/vc04_services/Makefile | 2 + .../staging/vc04_services/bcm2835-isp/Kconfig | 14 + .../vc04_services/bcm2835-isp/Makefile | 8 + .../bcm2835-isp/bcm2835-isp-ctrls.h | 72 + .../bcm2835-isp/bcm2835-isp-fmts.h | 558 +++++ .../bcm2835-isp/bcm2835-v4l2-isp.c | 1817 +++++++++++++++++ .../interface/vchiq_arm/vchiq_arm.c | 6 + .../staging/vc04_services/vc-sm-cma/Kconfig | 10 + .../staging/vc04_services/vc-sm-cma/Makefile | 12 + .../staging/vc04_services/vc-sm-cma/vc_sm.c | 801 ++++++++ .../staging/vc04_services/vc-sm-cma/vc_sm.h | 54 + .../vc04_services/vc-sm-cma/vc_sm_cma_vchi.c | 507 +++++ .../vc04_services/vc-sm-cma/vc_sm_cma_vchi.h | 63 + .../vc04_services/vc-sm-cma/vc_sm_defs.h | 187 ++ .../vc04_services/vc-sm-cma/vc_sm_knl.h | 28 + .../staging/vc04_services/vchiq-mmal/Kconfig | 1 + .../vc04_services/vchiq-mmal/mmal-common.h | 5 + .../vc04_services/vchiq-mmal/mmal-encodings.h | 66 + .../vc04_services/vchiq-mmal/mmal-msg.h | 35 + .../vchiq-mmal/mmal-parameters.h | 165 +- .../vc04_services/vchiq-mmal/mmal-vchiq.c | 253 ++- .../vc04_services/vchiq-mmal/mmal-vchiq.h | 5 + include/media/videobuf2-core.h | 15 + include/uapi/linux/bcm2835-isp.h | 347 ++++ include/uapi/linux/v4l2-controls.h | 6 + include/uapi/linux/videodev2.h | 1 + 34 files changed, 5225 insertions(+), 33 deletions(-) create mode 100644 Documentation/admin-guide/media/bcm2835-isp.rst create mode 100644 Documentation/userspace-api/media/v4l/pixfmt-meta-bcm2835-isp-stats.rst 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 create mode 100644 drivers/staging/vc04_services/vc-sm-cma/Kconfig create mode 100644 drivers/staging/vc04_services/vc-sm-cma/Makefile create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm.c create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm.h create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_cma_vchi.c create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_cma_vchi.h create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_defs.h create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_knl.h create mode 100644 include/uapi/linux/bcm2835-isp.h -- 2.37.3
WARNING: multiple messages have this Message-ID (diff)
From: Umang Jain <umang.jain@ideasonboard.com> To: linux-media@vger.kernel.org, kernel-list@raspberrypi.com, linux-kernel@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-staging@lists.linux.dev, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com> Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>, Florian Fainelli <f.fainelli@gmail.com>, Naushir Patuck <naush@raspberrypi.com>, David Plowman <david.plowman@raspberrypi.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Umang Jain <umang.jain@ideasonboard.com> Subject: [PATCH 00/14] staging: vc04_services: bcm2835-isp support Date: Tue, 22 Nov 2022 03:17:08 +0530 [thread overview] Message-ID: <20221121214722.22563-1-umang.jain@ideasonboard.com> (raw) This series aims to upport bcm2835-isp from the RPi kernel [1] and is a independent subset of earlier series [2] posted to upport CSI-2/CCP2 receiver IP core("Unicam) + the ISP driver found in BCM283x and compatible SoCs (namely BCM2711). Unicam is still under active development to work with multistream support to get into mainline. Hence only the ISP driver will remain the primary area of this series. Patch (01-02)/14 adds a new driver named vc-sm-cma to handle memory sharing with the VC4 VPU. Patch 03/14 adds a small extension to videobuf2 to allow exporting as a dma_buf instead of a file-descriptor. Patch (04-05)/14 adds a couple of improvements/support for bcm2835-isp(event callback and zero-copy) to vchiq-mmal. Patch (06-09)/14 adds the core bcm2835-isp driver along with headers and format defintions. Patch (10-11)/14 deals with the colorspace support. Note: This is still WIP since the implementation of colorspace is still getting ironed out (especially around setting of colorspace flags handling). Patch 12/14 allows multiple instances of the ISP. Patch 13/14 adds a admin-guide document on bcm2835-isp. Patch 14/14 wires all this up with the vchiq-mmal driver. Testing: Tested with RPi Model 4B running linux mainline v6.1-rc6. To test end-to-end, I choose to cherry-pick the Unicam patches and OV5647 DT bindings from [1]). Once done, functional testing was conducted with libcamera[3] and its utility tools. Also note: Reviews given on [2] for the relevant ISP driver patches have been incorporated in this version. Known issues: - Colorspace handling - vc-sm-cma spamming kernel log with - pr_err("%s: Expecting an uncached alias for dma_addr %pad\n" [1]: https://github.com/raspberrypi/linux [2]: https://lore.kernel.org/linux-media/20200504092611.9798-1-laurent.pinchart@ideasonboard.com/ [3]: https://libcamera.org/getting-started.html Dave Stevenson (7): staging: vc04_services: Add new vc-sm-cma driver staging: vchiq_arm: Register vcsm-cma as a platform driver media: videobuf2: Allow exporting of a struct dmabuf staging: mmal-vchiq: Add support for event callbacks staging: mmal-vchiq: Use vc-sm-cma to support zero copy staging: mmal_vchiq: Add image formats to be used by bcm2835-isp uapi: bcm2835-isp: Add bcm2835-isp uapi header file David Plowman (2): vc04_services: bcm2835-isp: Allow formats with different colour spaces vc04_services: bcm2835-isp: Permit all sRGB colour spaces on ISP outputs Naushir Patuck (5): media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type staging: vc04_services: bcm2835-isp: Add a more complex ISP processing component staging: vc04_services: bcm2835_isp: Allow multiple users docs: admin-guide: media: bcm2835-isp: Add documentation for bcm2835-isp staging: vc04_services: vchiq: Load bcm2835_isp driver from vchiq .../admin-guide/media/bcm2835-isp.rst | 127 ++ .../userspace-api/media/drivers/index.rst | 1 + .../userspace-api/media/v4l/meta-formats.rst | 1 + .../v4l/pixfmt-meta-bcm2835-isp-stats.rst | 41 + MAINTAINERS | 9 + .../media/common/videobuf2/videobuf2-core.c | 36 +- drivers/media/v4l2-core/v4l2-ioctl.c | 1 + drivers/staging/vc04_services/Kconfig | 4 + drivers/staging/vc04_services/Makefile | 2 + .../staging/vc04_services/bcm2835-isp/Kconfig | 14 + .../vc04_services/bcm2835-isp/Makefile | 8 + .../bcm2835-isp/bcm2835-isp-ctrls.h | 72 + .../bcm2835-isp/bcm2835-isp-fmts.h | 558 +++++ .../bcm2835-isp/bcm2835-v4l2-isp.c | 1817 +++++++++++++++++ .../interface/vchiq_arm/vchiq_arm.c | 6 + .../staging/vc04_services/vc-sm-cma/Kconfig | 10 + .../staging/vc04_services/vc-sm-cma/Makefile | 12 + .../staging/vc04_services/vc-sm-cma/vc_sm.c | 801 ++++++++ .../staging/vc04_services/vc-sm-cma/vc_sm.h | 54 + .../vc04_services/vc-sm-cma/vc_sm_cma_vchi.c | 507 +++++ .../vc04_services/vc-sm-cma/vc_sm_cma_vchi.h | 63 + .../vc04_services/vc-sm-cma/vc_sm_defs.h | 187 ++ .../vc04_services/vc-sm-cma/vc_sm_knl.h | 28 + .../staging/vc04_services/vchiq-mmal/Kconfig | 1 + .../vc04_services/vchiq-mmal/mmal-common.h | 5 + .../vc04_services/vchiq-mmal/mmal-encodings.h | 66 + .../vc04_services/vchiq-mmal/mmal-msg.h | 35 + .../vchiq-mmal/mmal-parameters.h | 165 +- .../vc04_services/vchiq-mmal/mmal-vchiq.c | 253 ++- .../vc04_services/vchiq-mmal/mmal-vchiq.h | 5 + include/media/videobuf2-core.h | 15 + include/uapi/linux/bcm2835-isp.h | 347 ++++ include/uapi/linux/v4l2-controls.h | 6 + include/uapi/linux/videodev2.h | 1 + 34 files changed, 5225 insertions(+), 33 deletions(-) create mode 100644 Documentation/admin-guide/media/bcm2835-isp.rst create mode 100644 Documentation/userspace-api/media/v4l/pixfmt-meta-bcm2835-isp-stats.rst 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 create mode 100644 drivers/staging/vc04_services/vc-sm-cma/Kconfig create mode 100644 drivers/staging/vc04_services/vc-sm-cma/Makefile create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm.c create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm.h create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_cma_vchi.c create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_cma_vchi.h create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_defs.h create mode 100644 drivers/staging/vc04_services/vc-sm-cma/vc_sm_knl.h create mode 100644 include/uapi/linux/bcm2835-isp.h -- 2.37.3 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2022-11-21 21:48 UTC|newest] Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-11-21 21:47 Umang Jain [this message] 2022-11-21 21:47 ` [PATCH 00/14] staging: vc04_services: bcm2835-isp support Umang Jain 2022-11-21 21:47 ` [PATCH 01/14] staging: vc04_services: Add new vc-sm-cma driver Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:04 ` Laurent Pinchart 2022-11-21 23:04 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 02/14] staging: vchiq_arm: Register vcsm-cma as a platform driver Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:07 ` Laurent Pinchart 2022-11-21 23:07 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 03/14] media: videobuf2: Allow exporting of a struct dmabuf Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:18 ` Laurent Pinchart 2022-11-21 23:18 ` Laurent Pinchart 2022-11-22 11:35 ` Dave Stevenson 2022-11-22 11:35 ` Dave Stevenson 2022-11-25 1:49 ` Laurent Pinchart 2022-11-25 1:49 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 04/14] staging: mmal-vchiq: Add support for event callbacks Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 05/14] staging: mmal-vchiq: Use vc-sm-cma to support zero copy Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 06/14] staging: mmal_vchiq: Add image formats to be used by bcm2835-isp Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:21 ` Laurent Pinchart 2022-11-21 23:21 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 07/14] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:25 ` Laurent Pinchart 2022-11-21 23:25 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 08/14] uapi: bcm2835-isp: Add bcm2835-isp uapi header file Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:28 ` Laurent Pinchart 2022-11-21 23:28 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 09/14] staging: vc04_services: bcm2835-isp: Add a more complex ISP processing component Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 10/14] WIP: vc04_services: bcm2835-isp: Allow formats with different colour spaces Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 11/14] WIP: vc04_services: bcm2835-isp: Permit all sRGB colour spaces on ISP outputs Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 12/14] staging: vc04_services: bcm2835_isp: Allow multiple users Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:29 ` Laurent Pinchart 2022-11-21 23:29 ` Laurent Pinchart 2022-11-21 23:35 ` Laurent Pinchart 2022-11-21 23:35 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 13/14] docs: admin-guide: media: bcm2835-isp: Add documentation for bcm2835-isp Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:41 ` Laurent Pinchart 2022-11-21 23:41 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 14/14] staging: vc04_services: vchiq: Load bcm2835_isp driver from vchiq Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:10 ` Laurent Pinchart 2022-11-21 23:10 ` Laurent Pinchart 2022-11-21 22:16 ` [PATCH 00/14] staging: vc04_services: bcm2835-isp support Laurent Pinchart 2022-11-21 22:16 ` Laurent Pinchart 2022-11-22 11:42 ` Dave Stevenson 2022-11-22 11:42 ` Dave Stevenson 2022-11-22 12:34 ` Umang Jain 2022-11-22 12:34 ` Umang Jain 2022-11-26 14:42 ` Stefan Wahren 2022-11-26 14:42 ` Stefan Wahren 2022-11-26 16:26 ` Umang Jain 2022-11-26 16:26 ` Umang Jain 2022-11-26 22:56 ` Stefan Wahren 2022-11-26 22:56 ` Stefan Wahren 2022-11-30 10:58 ` Umang Jain 2022-11-30 10:58 ` Umang Jain 2022-12-01 22:45 ` Stefan Wahren 2022-12-01 22:45 ` Stefan Wahren 2022-12-02 3:57 ` Umang Jain 2022-12-02 3:57 ` Umang Jain 2022-12-02 9:17 ` Laurent Pinchart 2022-12-02 9:17 ` Laurent Pinchart 2022-12-02 11:23 ` Dave Stevenson 2022-12-02 11:23 ` Dave Stevenson 2022-12-02 12:10 ` Laurent Pinchart 2022-12-02 12:10 ` Laurent Pinchart 2022-12-02 12:35 ` Stefan Wahren 2022-12-02 12:35 ` Stefan Wahren 2022-12-02 13:25 ` Peter Robinson 2022-12-02 13:25 ` Peter Robinson 2022-12-02 12:38 ` Dave Stevenson 2022-12-02 12:38 ` Dave Stevenson 2022-12-02 13:29 ` Laurent Pinchart 2022-12-02 13:29 ` Laurent Pinchart 2022-12-02 12:25 ` Stefan Wahren 2022-12-02 12:41 ` Stefan Wahren 2022-12-02 12:41 ` Stefan Wahren 2022-12-02 13:32 ` Laurent Pinchart 2022-12-02 13:32 ` Laurent Pinchart 2022-12-02 13:42 ` Dave Stevenson 2022-12-02 13:42 ` Dave Stevenson 2022-12-03 13:41 ` Stefan Wahren 2022-12-03 13:41 ` Stefan Wahren
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221121214722.22563-1-umang.jain@ideasonboard.com \ --to=umang.jain@ideasonboard.com \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=dave.stevenson@raspberrypi.com \ --cc=david.plowman@raspberrypi.com \ --cc=f.fainelli@gmail.com \ --cc=kernel-list@raspberrypi.com \ --cc=kieran.bingham@ideasonboard.com \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=linux-staging@lists.linux.dev \ --cc=naush@raspberrypi.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.