From: Alain Volmat <alain.volmat@foss.st.com>
To: Hugues Fruchet <hugues.fruchet@foss.st.com>,
Alain Volmat <alain.volmat@foss.st.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Russell King <linux@armlinux.org.uk>,
Philipp Zabel <p.zabel@pengutronix.de>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Dan Scally <dan.scally@ideasonboard.com>,
<linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH v8 0/5] Add support for DCMIPP camera interface of STMicroelectronics STM32 SoC series
Date: Wed, 22 Nov 2023 08:39:14 +0100 [thread overview]
Message-ID: <20231122073927.788810-1-alain.volmat@foss.st.com> (raw)
This patchset introduces support for Digital Camera Memory Interface
Pixel Processor (DCMIPP) of STMicroelectronics STM32 SoC series.
This initial support implements a single capture pipe
allowing RGB565, YUV, Y, RAW8 and JPEG capture with
frame skipping, prescaling and cropping.
DCMIPP is exposed through 3 subdevices:
- dcmipp_dump_parallel: parallel interface handling
- dcmipp_dump_postproc: frame skipping, prescaling and cropping control
- dcmipp_dump_capture: video device capture node
v8:
- serie rebased on top of master branch of tree sailus/media_tree.git
in order to use v4l2_subdev_state_* functions
v7:
- correct byteproc set_fmt handling and compose/crop/fmt handling
- replace few v4l2_subdev_get_try_* into v4l2_subdev_get_pad_*
- correct ordering within dcmipp_remove
v6:
- correct copyright year in all files
- correct Kconfig (removal of OF addition of select
VIDEO_V4L2_SUBDEV_API/MEDIA_CONTROLLER
- add missing mutex_destroy in error handling
- rely on fwnode_graph_get_endpoint_by_id instead of fwnode_graph_get_next_endpoint
- rely on device_get_match_data instead of of_device_get_match_data
- use local variable for pads_flag initialization
v5:
- removal of dcmipp_frame_size & dcmipp_frame_stride and use
v4l2_fill_pixfmt
- correct typos & avoid check of available buffer at start_streaming
time since this is done by vb2 framework
- avoid set of pad format in dcmipp_par_ent_init and
dcmipp_byteproc_ent_init since done via init_cfg
- reorder bound functions
- use v4l2_subdev_get_fmt in parallel and byteproc subdevs
- correct struct dcmipp_ent_device comments
- removal of dcmipp_hdw_pixel_alignment in bytecap subdev since not
applicable in this byte mode pipeline
v4:
- rework of mutex / spinlock handling
- addition of dma mask setting
- removal of __maybe_unused, use pm_ptr and new declaration macros
- driver now only generate a single stm32-dcmipp.ko module instead of
several as before
- removal of the component framework usage
- various small fixes (function names, lowercase values, indentation,
print formats)
- register name removal in register access function, only dev_dbg with
address & values are kept
- removal of VB2_READ and CAP_READWRITE
- usage of subdev active state mechanism and removal of locally stored
format/compose/crop
- addition of port { } within the stm32mp135.dtsi
v3:
- Have same To & Cc in all patches emails of the serie so that everybody
has coherent view of the serie
- bindings: correct wording, clock-names & label removal
- driver: replace of_graph call with fwnode_graph
- driver: use defined bus-type when calling v4l2_fwnode_endpoint_parse
- driver: remove clock name
- dtsi: remove clock-names property
v2:
- removal of pclk-max-frequency from yaml example dts
- codying-style fixes
- correction in enum functions (format, mbus, frame_size ...) handling
- drop of v4l2_pipeline_pm_ calls, and specific open/close handler of
vdev
- video dev s_stream handling updated to call s_stream of remote subdev
instead of loop until sensor subdev
- code update following media_pipeline & v4l2_async_ api changes since v1
- removal of IP reset call upon error
- removal of link_validate handlers
- addition of V4L2_CAP_IO_MC device_caps
- removal of the frame skip control for the time being, will be added
back in another commit once control method will be agreed
- change byteproc entity type to MEDIA_ENT_F_PROC_VIDEO_SCALER
- various fixes from Dan & Sakari remarks
Alain Volmat (2):
dt-bindings: media: add bindings for stm32 dcmipp
media: MAINTAINERS: add entry for STM32 DCMIPP driver
Hugues Fruchet (3):
media: stm32-dcmipp: STM32 DCMIPP camera interface driver
ARM: dts: stm32: add dcmipp support to stm32mp135
ARM: multi_v7_defconfig: enable STM32 DCMIPP media support
.../bindings/media/st,stm32-dcmipp.yaml | 89 ++
MAINTAINERS | 5 +-
arch/arm/boot/dts/st/stm32mp135.dtsi | 11 +
arch/arm/configs/multi_v7_defconfig | 1 +
drivers/media/platform/st/stm32/Kconfig | 16 +
drivers/media/platform/st/stm32/Makefile | 1 +
.../platform/st/stm32/stm32-dcmipp/Makefile | 4 +
.../st/stm32/stm32-dcmipp/dcmipp-bytecap.c | 914 ++++++++++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-byteproc.c | 565 +++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-common.c | 106 ++
.../st/stm32/stm32-dcmipp/dcmipp-common.h | 216 +++++
.../st/stm32/stm32-dcmipp/dcmipp-core.c | 604 ++++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-parallel.c | 440 +++++++++
13 files changed, 2971 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmipp.yaml
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/Makefile
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.h
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-parallel.c
--
2.25.1
next reply other threads:[~2023-11-22 7:40 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-22 7:39 Alain Volmat [this message]
2023-11-22 7:39 ` [PATCH v8 1/5] dt-bindings: media: add bindings for stm32 dcmipp Alain Volmat
2023-11-22 7:39 ` [PATCH v8 2/5] media: MAINTAINERS: add entry for STM32 DCMIPP driver Alain Volmat
2023-11-22 7:39 ` [PATCH v8 3/5] media: stm32-dcmipp: STM32 DCMIPP camera interface driver Alain Volmat
2023-11-23 1:54 ` kernel test robot
2023-11-23 3:16 ` kernel test robot
2023-11-27 10:32 ` Sakari Ailus
2023-11-27 11:38 ` Philipp Zabel
2023-11-27 13:55 ` Alain Volmat
2023-11-22 7:39 ` [PATCH v8 4/5] ARM: dts: stm32: add dcmipp support to stm32mp135 Alain Volmat
2023-11-22 7:39 ` [PATCH v8 5/5] ARM: multi_v7_defconfig: enable STM32 DCMIPP media support Alain Volmat
2023-11-27 10:33 ` [PATCH v8 0/5] Add support for DCMIPP camera interface of STMicroelectronics STM32 SoC series Sakari Ailus
2023-11-27 11:14 ` Alain Volmat
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=20231122073927.788810-1-alain.volmat@foss.st.com \
--to=alain.volmat@foss.st.com \
--cc=alexandre.torgue@foss.st.com \
--cc=conor+dt@kernel.org \
--cc=dan.scally@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=hugues.fruchet@foss.st.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--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-stm32@st-md-mailman.stormreply.com \
--cc=linux@armlinux.org.uk \
--cc=mchehab@kernel.org \
--cc=mcoquelin.stm32@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).