mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 00/74] RFC: Switch on IFE YUV, Stats and Params support for sm8650
@ 2026-10-05 17:13 Bryan O'Donoghue
  2026-10-05 17:13 ` [PATCH 01/74] media: qcom: camss: vfe: Rename gen3 back to vfe780 Bryan O'Donoghue
                   ` (74 more replies)
  0 siblings, 75 replies; 76+ messages in thread
From: Bryan O'Donoghue @ 2026-10-05 17:13 UTC (permalink / raw)
  To: Bryan O'Donoghue, Vladimir Zapolskiy, Loic Poulain,
	Mauro Carvalho Chehab, Jacopo Mondi, Daniel Scally, Keke Li,
	Richard Acayan, Hans Verkuil, Gjorgji Rosikopulos,
	Radoslav Tsvetkov, Robert Foss, Milen Mitkov
  Cc: linux-media, linux-arm-msm, linux-kernel, Bryan O'Donoghue,
	Antoine Bouyer, Niklas Söderlund, Sakari Ailus, stable

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@kernel.org>
---
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@kernel.org>


^ permalink raw reply	[flat|nested] 76+ messages in thread

end of thread, other threads:[~2026-10-06  7:06 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-05 17:13 [PATCH 00/74] RFC: Switch on IFE YUV, Stats and Params support for sm8650 Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 01/74] media: qcom: camss: vfe: Rename gen3 back to vfe780 Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 02/74] media: qcom: camss: vfe: Separate VFE 690 from VFE 780/880 Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 03/74] media: uapi: v4l2-isp: Add extensible statistics bod
2026-10-05 17:13 ` [PATCH 04/74] media: Documentation: uapi: Update V4L2 ISP for extensible stats bod
2026-10-05 17:13 ` [PATCH 05/74] media: v4l2-isp: Rename v4l2_isp_params_buffer_size bod
2026-10-05 17:13 ` [PATCH 06/74] media: v4l2-isp: Add per-block validation callback bod
2026-10-05 17:13 ` [PATCH 07/74] media: amlogic-c3: Implement per-block validation bod
2026-10-05 17:13 ` [PATCH 08/74] media: v4l2-isp: Add helpers for stats buffer bod
2026-10-05 17:13 ` [PATCH 09/74] media: uapi: Add CAMSS ISP configuration definition bod
2026-10-05 17:13 ` [PATCH 10/74] media: Documentation: uapi: Add qcom-camss ISP params documentation bod
2026-10-05 17:13 ` [PATCH 11/74] media: qcom: camss: Fix invalid declaration of PIX for SDM670 bod
2026-10-05 17:13 ` [PATCH 12/74] media: qcom: camss: Fix invalid declaration of PIX for SDM845 bod
2026-10-05 17:13 ` [PATCH 13/74] media: qcom: camss: Fix invalid declaration of PIX for sc8280xp bod
2026-10-05 17:13 ` [PATCH 14/74] media: qcom: camss: Fix invalid declaration of PIX for x1e80100 bod
2026-10-05 17:13 ` [PATCH 15/74] media: qcom: camss: csid: Configure the stream on every s_stream bod
2026-10-05 17:13 ` [PATCH 16/74] media: qcom: camss: Switch existing vfe_formats_pix_845 to vfe_formats_rdi_845 Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 17/74] media: qcom: camss: Define PIX formats for x1e PIX interface Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 18/74] media: qcom: camss: vfe: Add helper vfe_bus_v3_packer_fmt() Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 19/74] media: qcom: camss: vfe: Represent output as an array instead of a singleton Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 20/74] media: qcom: camss: vfe: Move video_out from vfe_line to vfe_output Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 21/74] media: qcom: camss: vfe: Represent vfe wm inside of a struct Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 22/74] media: qcom: camss: vfe: Add is_pix to struct line Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 23/74] media: qcom: camss: vfe: Add comp_group to struct vfe_wm Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 24/74] media: qcom: camss: vfe: Define vfe v3 completion group enum Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 25/74] media: qcom: camss: vfe: Define output based VFE controls Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 26/74] media: qcom: camss: vfe: Call vfe_subdev_init after not before significant enumeration Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 27/74] media: qcom: camss: vfe: Move legacy VFE bus client assignment to msm_vfe_subdev_init Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 28/74] media: qcom: camss: vfe: Add planes identifier to struct wm Bryan O'Donoghue
2026-10-05 17:13 ` [PATCH 29/74] media: qcom: camss: vfe: Specify number of pads via line->num_pads Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 30/74] media: qcom: camss: vfe: Add support for starting multiple write-masters in one output's group Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 31/74] media: qcom: camss: vfe: Add support for updating multiple write-masters within an output group Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 32/74] media: qcom: camss: vfe: Update an output group's write masters on buffer done bod
2026-10-05 17:14 ` [PATCH 33/74] media: qcom: camss: vfe: Add support for stopping outputs which contain multiple write masters Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 34/74] media: qcom: camss: vfe: Stop an output group once bod
2026-10-05 17:14 ` [PATCH 35/74] media: qcom: camss: vfe: Add helper __vfe_pix_format_is_raw Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 36/74] media: qcom: camss: csid: Add helper function csid_ipp_bayer_pattern bod
2026-10-05 17:14 ` [PATCH 37/74] media: qcom: camss: vfe: Decompose repeated code down to __vfe_src_pad_default() Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 38/74] media: qcom: camss: vfe: Eliminate ever expanding src_pad_code switch logic Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 39/74] media: qcom: camss: vfe: Add Bayer to YUV conversion switch cases for PIX Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 40/74] media: qcom: camss: vfe-gen3: Define full array of write-masters Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 41/74] media: qcom: camss: vfe-gen3: Enable PIX formats on PIX interfaces Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 42/74] media: qcom: camss: vfe: Pass struct line to wm_stop Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 43/74] media: qcom: camss: vfe-780: Use bus-client to derive write master index Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 44/74] media: qcom: camss: vfe-780: Switch on YUV pix path Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 45/74] media: qcom: camss: vfe: Add support for pix pad data-types Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 46/74] media: qcom: camss: vfe: Add helper methods to enumerate output descriptors Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 47/74] media: qcom: camss: Pass new struct camss_buf_done_info to camss_buf_done bod
2026-10-05 17:14 ` [PATCH 48/74] media: qcom: camss: Add a status field to camss_buf_done_info bod
2026-10-05 17:14 ` [PATCH 49/74] media: qcom: camss: csid-gen3: Enable the IPP path bod
2026-10-05 17:14 ` [PATCH 50/74] media: qcom: camss: vfe: Pass the completion info to vfe_buf_done() bod
2026-10-05 17:14 ` [PATCH 51/74] media: qcom: camss: vfe: Pass the buffer to vfe_wm_update() bod
2026-10-05 17:14 ` [PATCH 52/74] media: qcom: camss: Add the SM8650 IFE pixel pipe configuration bod
2026-10-05 17:14 ` [PATCH 53/74] media: qcom: camss: csid-gen3: Define the IPP reg update port in the header bod
2026-10-05 17:14 ` [PATCH 54/74] media: qcom: camss: vfe-880: Program the pixel pipe outside output_lock Bryan O'Donoghue
2026-10-05 17:14 ` [PATCH 55/74] media: qcom: camss: vfe: Make is_pix the only test for the pixel path bod
2026-10-05 17:14 ` [PATCH 56/74] media: qcom: camss: csid-gen3: Route IPP completions to the port the IPP feeds bod
2026-10-05 17:14 ` [PATCH 57/74] media: qcom: camss: vfe-780: Add full-resolution YUV on the PIX line bod
2026-10-05 17:14 ` [PATCH 58/74] media: uapi: Add CAMSS ISP statistics definition bod
2026-10-05 17:14 ` [PATCH 59/74] media: Documentation: uapi: Add qcom-camss ISP statistics bod
2026-10-05 17:14 ` [PATCH 60/74] media: qcom: camss: vfe: Select line-based mode for the pixel path's video node bod
2026-10-05 17:14 ` [PATCH 61/74] media: qcom: camss: vfe: Size the pixel path clock by its pixels per clock bod
2026-10-05 17:14 ` [PATCH 62/74] media: qcom: camss: vfe: Size the outputs for the PIX line and set up each one bod
2026-10-05 17:14 ` [PATCH 63/74] media: qcom: camss: video: Support metadata capture nodes bod
2026-10-05 17:14 ` [PATCH 64/74] media: qcom: camss: vfe: Register a statistics node for the pixel line bod
2026-10-05 17:14 ` [PATCH 65/74] media: qcom: camss: vfe: Complete pixel line outputs on their own completion group bod
2026-10-05 17:14 ` [PATCH 66/74] media: qcom: camss: vfe-780: Produce the AEC Bayer histogram statistics bod
2026-10-05 17:14 ` [PATCH 67/74] media: uapi: Add the CAMSS AEC Bayer histogram configuration bod
2026-10-05 17:14 ` [PATCH 68/74] media: v4l2: Add the Qualcomm CAMSS ISP parameters format bod
2026-10-05 17:14 ` [PATCH 69/74] media: Documentation: uapi: Add the CAMSS IFE parameters bod
2026-10-05 17:14 ` [PATCH 70/74] media: qcom: camss: video: Support metadata output nodes bod
2026-10-05 17:14 ` [PATCH 71/74] media: qcom: camss: vfe: Register and apply a parameters node for the pixel line bod
2026-10-05 17:14 ` [PATCH 72/74] media: qcom: camss: vfe-780: Apply the AEC Bayer histogram parameters bod
2026-10-05 17:14 ` [PATCH 73/74] media: qcom: camss: vfe-780: Drive the write masters through the output ops bod
2026-10-05 17:14 ` [PATCH 74/74] media: qcom: camss: vfe: Pass the write master its address again bod
2026-10-06  7:06 ` [PATCH 00/74] RFC: Switch on IFE YUV, Stats and Params support for sm8650 Jacopo Mondi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®