Enable OPE driver support for Agatti and Shikra - #1120
Nihal Kumar Gupta (nihal231998) wants to merge 8 commits into
Conversation
…meters Add a V4L2 meta format code (V4L2_META_FMT_QCOM_ISP_PARAMS) for the Qualcomm CAMSS ISP parameter buffer. This format is used by the params video node exposed by CAMSS offline ISP drivers (e.g. OPE) to carry ISP tuning data such as white balance, color correction and chroma enhancement settings. Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-1-e70ad4fa39ce@oss.qualcomm.com/]
…ne (OPE) Add Devicetree binding documentation for the Qualcomm Camera Subsystem Offline Processing Engine (OPE) found on platforms such as Agatti. The OPE is a memory-to-memory image processing block which operates on frames read from and written back to system memory. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-2-e70ad4fa39ce@oss.qualcomm.com/]
… compatible Shikra uses the same Offline Processing Engine hardware as QCM2290, add qcom,shikra-camss-ope compatible string with qcom,qcm2290-camss-ope as the fallback. Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260907-camss-isp-ope-v6-3-6b915b9c5131@oss.qualcomm.com/]
Add the uapi header camss-ope-config.h defining the ISP parameter structures used by the CAMSS Offline Processing Engine (OPE) driver. This includes structures for white balance, chroma enhancement and color correction configuration. Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-3-e70ad4fa39ce@oss.qualcomm.com/]
Add an image processing driver for the Qualcomm Offline Processing Engine
(OPE). OPE is a memory-to-memory ISP block that converts raw Bayer
frames to YUV, performing white balance, demosaic, chroma enhancement,
color correction and downscaling.
The hardware architecture consists of Fetch Engines and Write Engines,
connected through intermediate pipeline modules for pix processing.
The driver exposes three video nodes per pipeline instance:
- ope_input: Bayer RAW input (V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
- ope_disp_output: YUV output (V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
- ope_params: ISP parameters (V4L2_BUF_TYPE_META_OUTPUT)
Hardware features:
- Stripe-based processing (up to 336 pixels wide per stripe)
- White balance (CLC_WB)
- Demosaic / Bayer-to-RGB (CLC_DEMO)
- RGB-to-YUV conversion (CLC_CHROMA_ENHAN)
- Color correction matrix (CLC_CC)
- MN downscaler for chroma and luma planes
Default configuration values are based on public standards such as BT.601.
Processing Model:
OPE processes frames in stripes of up to 336 pixels. Therefore, frames
must be split into stripes for processing. Each stripe is configured after
the previous one has been acquired (double buffered registers). To minimize
inter-stripe latency, stripe configurations are generated ahead of time.
The driver is split into three source files under the ope/ directory:
- core.c: the OPE m2m driver itself: probe, power management, V4L2/media
device setup, format handling, stripe generation and hardware
programming.
- pipeline.c/.h: a small declarative media-controller topology builder.
Drivers describe their entire media graph, entities (video devices,
subdevs, or base entities), their pads, and the links between them, in
a static descriptor table. The builder validates the table, allocates
and registers all entities, and creates all MC pad links. It is kept
generic but currently only used by OPE.
- params.c/.h: V4L2 ISP parameter buffer validation and dispatch. It
wraps the extensible V4L2 ISP parameters buffer format, validating
the buffer size and each per-block header before forwarding every
block to its driver-supplied handler.
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Co-developed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-4-e70ad4fa39ce@oss.qualcomm.com/]
Add the Offline Processing Engine (OPE) device tree node for the Agatti platform (QCM2290). The node describes the five register regions (top, bus_read, bus_write, pipeline, qos), clocks, interrupt, interconnects, IOMMU mappings, and OPP table. Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-5-e70ad4fa39ce@oss.qualcomm.com/] Note: patch targeted arch/arm64/boot/dts/qcom/agatti.dtsi (upstream renamed qcm2290.dtsi to agatti.dtsi), applied here to qcm2290.dtsi since this tree has not picked up that rename.
Add the Offline Processing Engine (OPE) device tree node for the Shikra platform. The node describes the five register regions (top, bus_read, bus_write, pipeline, qos), clocks, interrupt, interconnects, IOMMU mappings, and OPP table. Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com> Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-5-e70ad4fa39ce@oss.qualcomm.com/]
Add CONFIG_VIDEO_QCOM_CAMSS_OPE=m to enable the Offline Processing Engine driver for Agatti and Shikra platform. Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com> Upstream-Status: Submitted [https://lore.kernel.org/all/20260915-camss-isp-ope-v7-9-77b13d131d3d@oss.qualcomm.com/]
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
PR #1120 — validate-patchPR: #1120
Final Summary
|
PR #1120 — checker-log-analyzerPR: #1120
Detailed report: Full report
|
This series enable OPE driver support for Agatti and Shikra
FROMLIST: media: qcom: camss: Add V4L2 meta format for CAMSS ISP parameters
FROMLIST: dt-bindings: media: qcom: Add CAMSS Offline Processing Engine (OPE)
FROMLIST: media: uapi: Add CAMSS OPE ISP configuration definition
FROMLIST: media: qcom: camss: Add CAMSS Offline Processing Engine driver
FROMTLIST: dt-bindings: media: qcom,qcm2290-camss-ope: Document shikra compatible
FROMLIST: arm64: dts: qcom: agatti: Add OPE node
FROMLIST: arm64: dts: qcom: shikra: Add OPE node
FROMLIST: arm64: defconfig: Enable CAMSS OPE driver
CRs-Fixed: 4677262