mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH RESEND 00/45] media: qcom: camss: add IFE pixel path support
@ 2026-10-07  8:59 Gjorgji.Rosikopulos.gjorgji.rosikopulos
  2026-10-07  8:59 ` [PATCH RESEND 01/45] media: qcom: camss: report probe failures Gjorgji.Rosikopulos.gjorgji.rosikopulos
                   ` (44 more replies)
  0 siblings, 45 replies; 52+ messages in thread
From: Gjorgji.Rosikopulos.gjorgji.rosikopulos @ 2026-10-07  8:59 UTC (permalink / raw)
  To: Bryan O'Donoghue, Mauro Carvalho Chehab
  Cc: Vladimir Zapolskiy, Loic Poulain, Dmitry Baryshkov,
	Atanas Filipov, Jigarkumar Zala, Gjorgji Rosikopulos,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vikram Sharma,
	Bjorn Andersson, Konrad Dybcio, Hans Verkuil, Jacopo Mondi,
	Daniel Scally, Niklas Söderlund, Sakari Ailus,
	Deepa Guthyappa Madivalara, Yuchan Nam, Jai Luthra, Robert Foss,
	hariram.purushothaman, pshrotri, johannes.goede, linux-media,
	linux-arm-msm, devicetree, linux-kernel

From: Gjorgji Rosikopulos <gjorgji.rosikopulos@oss.qualcomm.com>

This series adds pixel-path support for three platforms: SM8250,
SA8775P, and QCS8300.

To keep the implementation manageable across platforms, instead of a
single monolithic VFE abstraction, more granular hardware abstractions
are introduced: ife-top, ife-camif, ife-bus, and ife-modules.

We initially attempted to modify and extend the existing VFE code, but
the changes touched every file and led to a third generation of VFE
support (multiple pads, etc.) being added on top of the existing two.
The result was a crowded, hard-to-review camss-vfe.c carrying three
hardware generations in a single file. Because of this, we introduced
a new sub-device, IFE (the new name for what was called VFE on older
platforms). The IFE sub-device supports the multistream API and
multiple source/sink pads for handling parameters and statistics.
Stream routing to each output is handled through the streams API. It
also defines, per pad, the basic configuration shared across all
platforms (WM IDs, composite IRQs, etc.), as described in the patches
that follow.

On the CSID side, a single source pad can now expose several hardware
outputs as separate streams, and the gen2 CSID backend gains a routed
pixel path (IPP) alongside the existing RDI paths. The TPG internal
path is also fixed to use one CSI-2 lane, avoiding packet header ECC
errors, and gains explicit links into the new IFE topology.

QCS8300 shares the same IFE/CSID pixel path hardware as SA8775P, with
the only difference being that QCS8300 has 3 CSIPHYs (0-2) instead of
SA8775P's 4 (0-3).

The IFE parameter and statistics blocks are now built on top of the
generic v4l2-isp parameter/statistics block validation introduced for
the OPE driver.

The selection of pixel path topology is done using a different
compatible for the same platform. This will most probably not be
accepted, but as of today it is the only way to support both
topologies.

NOTE: Bryan has posted RFC changes for pixel path params and
statistics. This series was ready to be posted at that time, so it is
not rebased on top of Bryan's implementation. Both implementations
share common parts, but take a different direction towards enabling
the pixel path: Bryan's series extends camss-vfe, while this series
introduces the new camss-ife sub-device described above.

This series is based on linux-next tag: next-20260909 and does not
include the PHY changes in CAMSS from Bryan's series:
https://lore.kernel.org/all/20260918-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v20-0-dc244e124e71@linaro.org/

Depends-on:
https://lore.kernel.org/all/20260925-camss-isp-ope-v10-0-2622411034cb@oss.qualcomm.com/
https://lore.kernel.org/all/20260911062213.195007-1-gjorgji.rosikopulos@oss.qualcomm.com/

Atanas Filipov (35):
  media: qcom: camss: report probe failures
  dt-bindings: media: qcom,sm8250-camss: add pixel path variant
  media: qcom: camss: keep CSIPHY lanes active while streaming
  media: qcom: camss: add IFE subdevice interface
  media: qcom: camss: sm8250: add IFE BUS v20x
  media: qcom: camss: sm8250: add IFE CamIF v10x
  media: qcom: camss: sm8250: add IFE scaler v10x
  media: qcom: camss: sm8250: add IFE module engine v10x
  media: qcom: camss: sm8250: add IFE top v20x
  media: qcom: camss: sm8250: add IFE Lite top v10x
  media: qcom: camss: sm8250: add IFE pad descriptors
  media: qcom: camss: formats: add pixel format lookup helpers
  media: qcom: camss: video: use helpers for line-based formats
  media: qcom: camss: video: add managed streaming callbacks
  media: qcom: camss: add common IFE subdevice core
  media: qcom: camss: integrate IFE devices
  media: qcom: camss: sm8250: add pixel path resources
  media: uapi: add Qualcomm IFE statistics
  media: v4l2: add Qualcomm IFE statistics format
  media: qcom: camss: add IFE statistics output
  media: uapi: add Qualcomm IFE parameters
  media: v4l2: add Qualcomm IFE parameters format
  media: qcom: camss: sm8250: apply IFE parameters
  arm64: dts: qcom: use SM8250 IFE resources
  dt-bindings: media: qcom,sa8775p-camss: add pixel path variant
  media: qcom: camss: sa8775p: add IFE BUS v3.1x
  media: qcom: camss: sa8775p: add IFE scaler v2.3x
  media: qcom: camss: sa8775p: add IFE top v4.1x
  media: qcom: camss: sa8775p: add IFE lite top v3.0x
  media: qcom: camss: sa8775p: add IFE pad descriptors
  media: qcom: camss: sa8775p: add IFE completion groups
  media: qcom: camss: sa8775p: add CSID pixel path
  media: qcom: camss: sa8775p: add IFE modules v4.1x
  media: qcom: camss: sa8775p: add pixel path resources
  arm64: dts: qcom: use SA8775P IFE resources

Gjorgji Rosikopulos (6):
  media: qcom: camss: sa8775p: add CCM parameters
  media: qcom: camss: sa8775p: add LSC parameters
  media: qcom: camss: sa8775p: add gamma parameters
  media: qcom: camss: sa8775p: add white balance parameters
  media: qcom: camss: sa8775p: add AWB BG parameters
  media: qcom: camss: ife: queue params buffers in FIFO order

Prashant Shrotriya (4):
  media: qcom: camss: create TPG links for IFE
  media: qcom: camss: use one lane for TPG internal path
  dt-bindings: media: qcom,qcs8300-camss: add pixel path variant
  media: qcom: camss: sa8775p: add pixel path resources for QCS8300

 .../bindings/media/qcom,qcs8300-camss.yaml    |    4 +-
 .../bindings/media/qcom,sa8775p-camss.yaml    |    4 +-
 .../bindings/media/qcom,sm8250-camss.yaml     |    4 +-
 arch/arm64/boot/dts/qcom/lemans.dtsi          |    2 +-
 arch/arm64/boot/dts/qcom/sm8250.dtsi          |    2 +-
 drivers/media/platform/qcom/camss/Kconfig     |    1 +
 drivers/media/platform/qcom/camss/Makefile    |   14 +
 .../platform/qcom/camss/camss-csid-gen3.c     |  265 ++-
 .../media/platform/qcom/camss/camss-csid.c    |    8 +-
 .../media/platform/qcom/camss/camss-csid.h    |    4 +
 .../media/platform/qcom/camss/camss-csiphy.c  |   12 +-
 .../media/platform/qcom/camss/camss-csiphy.h  |    1 +
 .../media/platform/qcom/camss/camss-format.c  |   31 +
 .../media/platform/qcom/camss/camss-format.h  |    3 +
 .../platform/qcom/camss/camss-ife-bus-v20x.c  |  287 +++
 .../platform/qcom/camss/camss-ife-bus-v31x.c  |  267 +++
 .../qcom/camss/camss-ife-camif-v10x.c         |   59 +
 .../qcom/camss/camss-ife-camif-v10x.h         |   42 +
 .../qcom/camss/camss-ife-lite-top-v10x.c      |  387 ++++
 .../qcom/camss/camss-ife-lite-top-v30x.c      |  265 +++
 .../platform/qcom/camss/camss-ife-mod-v10x.c  |  603 ++++++
 .../platform/qcom/camss/camss-ife-mod-v41x.c  |  739 +++++++
 .../platform/qcom/camss/camss-ife-pads.c      |  607 ++++++
 .../platform/qcom/camss/camss-ife-params.c    |   74 +
 .../platform/qcom/camss/camss-ife-params.h    |   75 +
 .../qcom/camss/camss-ife-scale-v10x.c         |  148 ++
 .../qcom/camss/camss-ife-scale-v10x.h         |   15 +
 .../qcom/camss/camss-ife-scale-v23x.c         |  203 ++
 .../qcom/camss/camss-ife-scale-v23x.h         |   19 +
 .../platform/qcom/camss/camss-ife-top-v20x.c  |  570 ++++++
 .../platform/qcom/camss/camss-ife-top-v41x.c  |  384 ++++
 drivers/media/platform/qcom/camss/camss-ife.c | 1812 +++++++++++++++++
 drivers/media/platform/qcom/camss/camss-ife.h |  413 ++++
 .../platform/qcom/camss/camss-tpg-gen1.c      |    2 +-
 drivers/media/platform/qcom/camss/camss-tpg.h |    1 +
 .../media/platform/qcom/camss/camss-video.c   |  299 ++-
 .../media/platform/qcom/camss/camss-video.h   |    5 +
 drivers/media/platform/qcom/camss/camss.c     | 1362 ++++++++++++-
 drivers/media/platform/qcom/camss/camss.h     |   47 +
 drivers/media/v4l2-core/v4l2-ioctl.c          |    6 +
 include/uapi/linux/qcom-camss-config.h        |  157 +-
 include/uapi/linux/qcom-camss-stats.h         |   62 +
 include/uapi/linux/videodev2.h                |    4 +
 43 files changed, 9123 insertions(+), 146 deletions(-)
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-bus-v20x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-bus-v31x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-camif-v10x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-camif-v10x.h
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-lite-top-v10x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-lite-top-v30x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-mod-v10x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-mod-v41x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-pads.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-params.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-params.h
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-scale-v10x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-scale-v10x.h
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-scale-v23x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-scale-v23x.h
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-top-v20x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife-top-v41x.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-ife.h
 create mode 100644 include/uapi/linux/qcom-camss-stats.h

-- 
2.34.1


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

end of thread, other threads:[~2026-10-09  9:48 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-07  8:59 [PATCH RESEND 00/45] media: qcom: camss: add IFE pixel path support Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  8:59 ` [PATCH RESEND 01/45] media: qcom: camss: report probe failures Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  8:59 ` [PATCH RESEND 02/45] dt-bindings: media: qcom,sm8250-camss: add pixel path variant Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-09  9:45   ` Krzysztof Kozlowski
2026-10-09  9:46     ` Krzysztof Kozlowski
2026-10-07  8:59 ` [PATCH RESEND 03/45] media: qcom: camss: keep CSIPHY lanes active while streaming Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 04/45] media: qcom: camss: add IFE subdevice interface Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 05/45] media: qcom: camss: sm8250: add IFE BUS v20x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 06/45] media: qcom: camss: sm8250: add IFE CamIF v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 07/45] media: qcom: camss: sm8250: add IFE scaler v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 08/45] media: qcom: camss: sm8250: add IFE module engine v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 09/45] media: qcom: camss: sm8250: add IFE top v20x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 10/45] media: qcom: camss: sm8250: add IFE Lite top v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 11/45] media: qcom: camss: sm8250: add IFE pad descriptors Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 12/45] media: qcom: camss: formats: add pixel format lookup helpers Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 13/45] media: qcom: camss: video: use helpers for line-based formats Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 14/45] media: qcom: camss: video: add managed streaming callbacks Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 15/45] media: qcom: camss: add common IFE subdevice core Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 16/45] media: qcom: camss: integrate IFE devices Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 17/45] media: qcom: camss: sm8250: add pixel path resources Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 18/45] media: uapi: add Qualcomm IFE statistics Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 19/45] media: v4l2: add Qualcomm IFE statistics format Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 20/45] media: qcom: camss: add IFE statistics output Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 21/45] media: uapi: add Qualcomm IFE parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 22/45] media: v4l2: add Qualcomm IFE parameters format Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 23/45] media: qcom: camss: sm8250: apply IFE parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 24/45] arm64: dts: qcom: use SM8250 IFE resources Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-09  9:48   ` Krzysztof Kozlowski
2026-10-07  9:00 ` [PATCH RESEND 25/45] dt-bindings: media: qcom,sa8775p-camss: add pixel path variant Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-09  9:46   ` Krzysztof Kozlowski
2026-10-07  9:00 ` [PATCH RESEND 26/45] media: qcom: camss: sa8775p: add IFE BUS v3.1x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 27/45] media: qcom: camss: sa8775p: add IFE scaler v2.3x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 28/45] media: qcom: camss: sa8775p: add IFE top v4.1x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 29/45] media: qcom: camss: sa8775p: add IFE lite top v3.0x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 30/45] media: qcom: camss: sa8775p: add IFE pad descriptors Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 31/45] media: qcom: camss: sa8775p: add IFE completion groups Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 32/45] media: qcom: camss: sa8775p: add CSID pixel path Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 33/45] media: qcom: camss: sa8775p: add IFE modules v4.1x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 34/45] media: qcom: camss: sa8775p: add pixel path resources Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 35/45] arm64: dts: qcom: use SA8775P IFE resources Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-09  9:47   ` Krzysztof Kozlowski
2026-10-07  9:00 ` [PATCH RESEND 36/45] media: qcom: camss: sa8775p: add CCM parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 37/45] media: qcom: camss: sa8775p: add LSC parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 38/45] media: qcom: camss: sa8775p: add gamma parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 39/45] media: qcom: camss: sa8775p: add white balance parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 40/45] media: qcom: camss: sa8775p: add AWB BG parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 41/45] media: qcom: camss: create TPG links for IFE Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 42/45] media: qcom: camss: use one lane for TPG internal path Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 43/45] media: qcom: camss: ife: queue params buffers in FIFO order Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07  9:00 ` [PATCH RESEND 44/45] dt-bindings: media: qcom,qcs8300-camss: add pixel path variant Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-09  9:46   ` Krzysztof Kozlowski
2026-10-07  9:00 ` [PATCH RESEND 45/45] media: qcom: camss: sa8775p: add pixel path resources for QCS8300 Gjorgji.Rosikopulos.gjorgji.rosikopulos

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®