[PATCH 00/74] RFC: Switch on IFE YUV, Stats and Params support for sm8650
From: Bryan O'Donoghue
Date: Mon Oct 05 2026 - 13:16:27 EST
This extensive series restructures CAMSS around the idea of lines and
outputs more closely matching the concepts in the camera hardware.
To begin with some bug fixing and some dependencies on the OPE series are
pulled in.
Following that a series of changes to enable the IFE hardware is introduced
for VFE780.
Supported in this drop:
- YUV output on the pix path
YUV downscale 16 and downscale 4 work on a staging branch
but with this series at 60 patches I've not included that.
- Stats output
Bayer histogram only
How many stats are intended to be brought out this way ?
Consider that scene in The Terminator when the guy in the gun
store.
Gun store owner: "So which will it be"
The Terminator: "All"
More seriously once this series lands then it will be possible to bring
out stats for Agatti mitigating the need for calculating stats in
software.
- Params application
AEC Bayer hist params
Again there are no limits envisaged on which params are to be enabled.
"All"
- Testing on HDK sm8650
There is a repo to test this stuff out:
https://github.com/0xB0D/ife-tests
Signed-off-by: Bryan O'Donoghue <bod@xxxxxxxxxx>
---
Antoine Bouyer (2):
media: uapi: v4l2-isp: Add extensible statistics
media: Documentation: uapi: Update V4L2 ISP for extensible stats
Bryan O'Donoghue (66):
media: qcom: camss: vfe: Rename gen3 back to vfe780
media: qcom: camss: vfe: Separate VFE 690 from VFE 780/880
media: qcom: camss: Fix invalid declaration of PIX for SDM670
media: qcom: camss: Fix invalid declaration of PIX for SDM845
media: qcom: camss: Fix invalid declaration of PIX for sc8280xp
media: qcom: camss: Fix invalid declaration of PIX for x1e80100
media: qcom: camss: csid: Configure the stream on every s_stream
media: qcom: camss: Switch existing vfe_formats_pix_845 to vfe_formats_rdi_845
media: qcom: camss: Define PIX formats for x1e PIX interface
media: qcom: camss: vfe: Add helper vfe_bus_v3_packer_fmt()
media: qcom: camss: vfe: Represent output as an array instead of a singleton
media: qcom: camss: vfe: Move video_out from vfe_line to vfe_output
media: qcom: camss: vfe: Represent vfe wm inside of a struct
media: qcom: camss: vfe: Add is_pix to struct line
media: qcom: camss: vfe: Add comp_group to struct vfe_wm
media: qcom: camss: vfe: Define vfe v3 completion group enum
media: qcom: camss: vfe: Define output based VFE controls
media: qcom: camss: vfe: Call vfe_subdev_init after not before significant enumeration
media: qcom: camss: vfe: Move legacy VFE bus client assignment to msm_vfe_subdev_init
media: qcom: camss: vfe: Add planes identifier to struct wm
media: qcom: camss: vfe: Specify number of pads via line->num_pads
media: qcom: camss: vfe: Add support for starting multiple write-masters in one output's group
media: qcom: camss: vfe: Add support for updating multiple write-masters within an output group
media: qcom: camss: vfe: Update an output group's write masters on buffer done
media: qcom: camss: vfe: Add support for stopping outputs which contain multiple write masters
media: qcom: camss: vfe: Stop an output group once
media: qcom: camss: vfe: Add helper __vfe_pix_format_is_raw
media: qcom: camss: csid: Add helper function csid_ipp_bayer_pattern
media: qcom: camss: vfe: Decompose repeated code down to __vfe_src_pad_default()
media: qcom: camss: vfe: Eliminate ever expanding src_pad_code switch logic
media: qcom: camss: vfe: Add Bayer to YUV conversion switch cases for PIX
media: qcom: camss: vfe-gen3: Define full array of write-masters
media: qcom: camss: vfe-gen3: Enable PIX formats on PIX interfaces
media: qcom: camss: vfe: Pass struct line to wm_stop
media: qcom: camss: vfe-780: Use bus-client to derive write master index
media: qcom: camss: vfe-780: Switch on YUV pix path
media: qcom: camss: vfe: Add support for pix pad data-types
media: qcom: camss: vfe: Add helper methods to enumerate output descriptors
media: qcom: camss: Pass new struct camss_buf_done_info to camss_buf_done
media: qcom: camss: Add a status field to camss_buf_done_info
media: qcom: camss: csid-gen3: Enable the IPP path
media: qcom: camss: vfe: Pass the completion info to vfe_buf_done()
media: qcom: camss: vfe: Pass the buffer to vfe_wm_update()
media: qcom: camss: Add the SM8650 IFE pixel pipe configuration
media: qcom: camss: csid-gen3: Define the IPP reg update port in the header
media: qcom: camss: vfe-880: Program the pixel pipe outside output_lock
media: qcom: camss: vfe: Make is_pix the only test for the pixel path
media: qcom: camss: csid-gen3: Route IPP completions to the port the IPP feeds
media: qcom: camss: vfe-780: Add full-resolution YUV on the PIX line
media: uapi: Add CAMSS ISP statistics definition
media: Documentation: uapi: Add qcom-camss ISP statistics
media: qcom: camss: vfe: Select line-based mode for the pixel path's video node
media: qcom: camss: vfe: Size the pixel path clock by its pixels per clock
media: qcom: camss: vfe: Size the outputs for the PIX line and set up each one
media: qcom: camss: video: Support metadata capture nodes
media: qcom: camss: vfe: Register a statistics node for the pixel line
media: qcom: camss: vfe: Complete pixel line outputs on their own completion group
media: qcom: camss: vfe-780: Produce the AEC Bayer histogram statistics
media: uapi: Add the CAMSS AEC Bayer histogram configuration
media: v4l2: Add the Qualcomm CAMSS ISP parameters format
media: Documentation: uapi: Add the CAMSS IFE parameters
media: qcom: camss: video: Support metadata output nodes
media: qcom: camss: vfe: Register and apply a parameters node for the pixel line
media: qcom: camss: vfe-780: Apply the AEC Bayer histogram parameters
media: qcom: camss: vfe-780: Drive the write masters through the output ops
media: qcom: camss: vfe: Pass the write master its address again
Jacopo Mondi (4):
media: v4l2-isp: Rename v4l2_isp_params_buffer_size
media: v4l2-isp: Add per-block validation callback
media: amlogic-c3: Implement per-block validation
media: v4l2-isp: Add helpers for stats buffer
Loic Poulain (2):
media: uapi: Add CAMSS ISP configuration definition
media: Documentation: uapi: Add qcom-camss ISP params documentation
.../userspace-api/media/v4l/meta-formats.rst | 1 +
.../userspace-api/media/v4l/metafmt-qcom-isp.rst | 219 +++++
Documentation/userspace-api/media/v4l/v4l2-isp.rst | 45 +-
MAINTAINERS | 1 +
.../media/platform/amlogic/c3/isp/c3-isp-params.c | 42 +-
.../media/platform/arm/mali-c55/mali-c55-params.c | 12 +-
drivers/media/platform/qcom/camss/Kconfig | 2 +
drivers/media/platform/qcom/camss/Makefile | 4 +-
drivers/media/platform/qcom/camss/camss-csid-680.c | 8 +-
.../media/platform/qcom/camss/camss-csid-gen3.c | 131 ++-
.../media/platform/qcom/camss/camss-csid-gen3.h | 3 +
drivers/media/platform/qcom/camss/camss-csid.c | 37 +-
drivers/media/platform/qcom/camss/camss-csid.h | 18 +-
drivers/media/platform/qcom/camss/camss-vfe-17x.c | 10 +-
drivers/media/platform/qcom/camss/camss-vfe-340.c | 12 +-
drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 20 +-
drivers/media/platform/qcom/camss/camss-vfe-4-7.c | 34 +-
drivers/media/platform/qcom/camss/camss-vfe-4-8.c | 34 +-
drivers/media/platform/qcom/camss/camss-vfe-480.c | 19 +-
drivers/media/platform/qcom/camss/camss-vfe-680.c | 4 +-
.../camss/{camss-vfe-gen3.c => camss-vfe-690.c} | 53 +-
drivers/media/platform/qcom/camss/camss-vfe-780.c | 419 +++++++++
.../media/platform/qcom/camss/camss-vfe-880-pp.c | 629 +++++++++++++
.../media/platform/qcom/camss/camss-vfe-880-pp.h | 13 +
drivers/media/platform/qcom/camss/camss-vfe-gen1.c | 96 +-
drivers/media/platform/qcom/camss/camss-vfe.c | 985 ++++++++++++++++++---
drivers/media/platform/qcom/camss/camss-vfe.h | 156 +++-
drivers/media/platform/qcom/camss/camss-video.c | 235 ++++-
drivers/media/platform/qcom/camss/camss-video.h | 8 +
drivers/media/platform/qcom/camss/camss.c | 156 ++--
drivers/media/platform/qcom/camss/camss.h | 8 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
drivers/media/v4l2-core/v4l2-isp.c | 55 ++
include/media/v4l2-isp.h | 94 +-
include/uapi/linux/media/v4l2-isp.h | 125 ++-
include/uapi/linux/qcom-camss-config.h | 273 ++++++
include/uapi/linux/videodev2.h | 4 +
37 files changed, 3464 insertions(+), 503 deletions(-)
---
base-commit: 8d3ae59288f1e7d58d76558a6ee96d533bc5019f
change-id: 20261005-linux-mainline-7-2-sm8650-hdk-rfc-0-aa75cdf2c39b
Best regards,
--
Bryan O'Donoghue <bod@xxxxxxxxxx>