From: "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
Loic Poulain <loic.poulain@oss.qualcomm.com>,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
Jigarkumar Zala <jigarkumar.zala@oss.qualcomm.com>,
linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
hariram.purushothaman@oss.qualcomm.com,
pshrotri@qti.qualcomm.com,
Vikram Sharma <vikram.sharma@oss.qualcomm.com>,
johannes.goede@oss.qualcomm.com, konradybcio@kernel.org
Subject: Re: [PATCH 27/45] media: qcom: camss: sa8775p: add IFE BUS v3.1x
Date: Wed, 7 Oct 2026 09:44:43 +0300 [thread overview]
Message-ID: <b9ed7848-36ef-4b70-9d5c-b18af9eee83b@oss.qualcomm.com> (raw)
In-Reply-To: <20261006223953.3382273-28-gjorgji.rosikopulos@oss.qualcomm.com>
Hello,
Appoagies somehow after my last rebase the co-develped by was removed. For all the changes
of SA8775P credits to Vikram and Prashant. This will be fixed in the next series.
Co-developed-by: Vikram Sharma <vikram.sharma@oss.qualcomm.com>
Signed-off-by: Vikram Sharma <vikram.sharma@oss.qualcomm.com>
Co-developed-by: Prashant Shrotriya <prashant.shrotriya@oss.qualcomm.com>
Signed-off-by: Prashant Shrotriya <prashant.shrotriya@oss.qualcomm.com>
~Gjorgji
On 10/7/2026 1:39 AM, "Gjorgji Rosikopulos gjorgji.rosikopulos"@oss.qualcomm.com wrote:
> From: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
>
> Add the IFE BUS v3.1x write engine used by the SA8775P full and lite
> pixel paths.
>
> Signed-off-by: Atanas Filipov <atanas.filipov@oss.qualcomm.com>
> ---
> drivers/media/platform/qcom/camss/Makefile | 1 +
> .../platform/qcom/camss/camss-ife-bus-v31x.c | 267 ++++++++++++++++++
> drivers/media/platform/qcom/camss/camss-ife.h | 1 +
> 3 files changed, 269 insertions(+)
> create mode 100644 drivers/media/platform/qcom/camss/camss-ife-bus-v31x.c
>
> diff --git a/drivers/media/platform/qcom/camss/Makefile b/drivers/media/platform/qcom/camss/Makefile
> index 500b056a906c..2251b57ba38b 100644
> --- a/drivers/media/platform/qcom/camss/Makefile
> +++ b/drivers/media/platform/qcom/camss/Makefile
> @@ -16,6 +16,7 @@ qcom-camss-objs += \
> camss-format.o \
> camss-ife.o \
> camss-ife-bus-v20x.o \
> + camss-ife-bus-v31x.o \
> camss-ife-camif-v10x.o \
> camss-ife-lite-top-v10x.o \
> camss-ife-mod-v10x.o \
> diff --git a/drivers/media/platform/qcom/camss/camss-ife-bus-v31x.c b/drivers/media/platform/qcom/camss/camss-ife-bus-v31x.c
> new file mode 100644
> index 000000000000..c3a99bd0f75e
> --- /dev/null
> +++ b/drivers/media/platform/qcom/camss/camss-ife-bus-v31x.c
> @@ -0,0 +1,267 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/* Copyright (c) 2023, The Linux Foundation. All rights reserved.
> + * Copyright (c) 2023 Qualcomm Technologies, Inc.
> + */
> +
> +#include <linux/bitfield.h>
> +
> +#include "camss.h"
> +#include "camss-ife.h"
> +
> +/* Block base offsets */
> +#define BUSWR_V31X_OFFS 0x400
> +#define BUSWR_V31X_LITE_OFFS 0x480
> +
> +/* Per-client register offset */
> +#define BUSWR_V31X_CLIENT_OFFS(n) ((n) * 0x100)
> +
> +/* Interface interrupt and violation status bits */
> +#define BUSWR_V31X_IIF_IRQ_CMD_CLEAR BIT(0)
> +#define BUSWR_V31X_OVERFLOW_ERR_MASK GENMASK(25, 0)
> +#define IS_BUSWR_V31X_OVERFLOW_ERR(s) \
> + ((s) & BUSWR_V31X_OVERFLOW_ERR_MASK)
> +#define BUSWR_V31X_VIOLATION_ERR_MASK GENMASK(25, 0)
> +#define IS_BUSWR_V31X_VIOLATION_ERR(s) \
> + ((s) & BUSWR_V31X_VIOLATION_ERR_MASK)
> +#define BUSWR_V31X_IMG_SIZE_VIOLATION_ERR_MASK GENMASK(25, 0)
> +#define IS_BUSWR_V31X_IMG_SIZE_VIOLATION_ERR(s) \
> + ((s) & BUSWR_V31X_IMG_SIZE_VIOLATION_ERR_MASK)
> +#define BUSWR_V31X_IIF_IRQ_S0_IMG_SIZE_VIOLATION BIT(31)
> +#define IS_BUSWR_V31X_IIF_IRQ_S0_IMG_SIZE_VIOLATION(s) \
> + ((s) & BUSWR_V31X_IIF_IRQ_S0_IMG_SIZE_VIOLATION)
> +#define BUSWR_V31X_IIF_IRQ_S0_VIOLATION BIT(30)
> +#define IS_BUSWR_V31X_IIF_IRQ_S0_VIOLATION(s) \
> + ((s) & BUSWR_V31X_IIF_IRQ_S0_VIOLATION)
> +
> +/* Client configuration field values */
> +#define BUSWR_V31X_IIF_CGC_OVERRIDE GENMASK(26, 0)
> +#define BUSWR_V31X_CLIENT_CFG_MODE GENMASK(17, 16)
> +#define BUSWR_V31X_CLIENT_CFG_AUTO_RECOVERY_EN BIT(4)
> +#define BUSWR_V31X_CLIENT_CFG_EN BIT(0)
> +#define BUSWR_V31X_CLIENT_IMG_CFG0_HEIGHT GENMASK(31, 16)
> +#define BUSWR_V31X_CLIENT_IMG_CFG0_WIDTH GENMASK(15, 0)
> +#define BUSWR_V31X_CLIENT_IMG_CFG2_STRIDE GENMASK(23, 0)
> +#define BUSWR_V31X_CLIENT_PACKER_CFG_ALIGN BIT(5)
> +#define BUSWR_V31X_CLIENT_PACKER_CFG_FORMAT GENMASK(4, 0)
> +#define BUSWR_V31X_PACKER_FMT_PLAIN16_10_BPP 0x5
> +#define BUSWR_V31X_PACKER_FMT_PLAIN16_16_BPP 0x8
> +#define BUSWR_V31X_CLIENT_IRQ_SUBSAMPLE_CFG0_PERIOD GENMASK(4, 0)
> +#define BUSWR_V31X_CLIENT_IRQ_SUBSAMPLE_CFG1_PATTERN GENMASK(31, 0)
> +#define BUSWR_V31X_CLIENT_FRAMEDROP_CFG0_PERIOD GENMASK(4, 0)
> +#define BUSWR_V31X_CLIENT_FRAMEDROP_CFG1_PATTERN GENMASK(31, 0)
> +
> +/* FIFO limit and frame-based RDI defaults */
> +#define BUSWR_V31X_IMG_ADDR_FIFO_MAX_DEPTH 2
> +#define BUSWR_V31X_RDI_DEFAULT_WIDTH 0xffff
> +#define BUSWR_V31X_RDI_DEFAULT_STRIDE 0xffff
> +#define BUSWR_V31X_CLIENT_ADDR_STATUS_2_IMAGE_ADDR_FIFO_WORD_CNT GENMASK(2, 0)
> +
> +/* Common registers */
> +#define BUSWR_V31X_IIF_CGC_OVERRIDE_REG 0x00000008
> +#define BUSWR_V31X_WM_TEST_BUS_CTRL_REG 0x000000fc
> +#define BUSWR_V31X_IIF_IRQ_MASK_S0 0x00000018
> +#define BUSWR_V31X_IIF_IRQ_CLEAR_S0 0x00000020
> +#define BUSWR_V31X_IIF_IRQ_STATUS_S0 0x00000028
> +#define BUSWR_V31X_IIF_IRQ_CMD_REG 0x00000030
> +#define BUSWR_V31X_STATUS_CLEAR_REG 0x00000060
> +#define BUSWR_V31X_VIOLATION_STATUS_REG 0x00000064
> +#define BUSWR_V31X_OVERFLOW_STATUS_REG 0x00000068
> +#define BUSWR_V31X_IMG_SIZE_VIOLATION_REG 0x00000070
> +
> +/* Per-client registers (relative to client base = module_base + CLIENT_OFFS(n)) */
> +#define BUSWR_V31X_CLIENT_CFG_REG 0x00000200
> +#define BUSWR_V31X_CLIENT_ADDR_IMAGE_REG 0x00000204
> +#define BUSWR_V31X_CLIENT_IMG_CFG0_REG 0x0000020c
> +#define BUSWR_V31X_CLIENT_IMG_CFG2_REG 0x00000214
> +#define BUSWR_V31X_CLIENT_PACKER_CFG_REG 0x00000218
> +#define BUSWR_V31X_CLIENT_IRQ_SS_CFG0_REG 0x00000230
> +#define BUSWR_V31X_CLIENT_IRQ_SS_CFG1_REG 0x00000234
> +#define BUSWR_V31X_CLIENT_FRAMEDROP_CFG0_REG 0x00000238
> +#define BUSWR_V31X_CLIENT_FRAMEDROP_CFG1_REG 0x0000023c
> +#define BUSWR_V31X_CLIENT_ADDR_STATUS_0_REG 0x00000270
> +#define BUSWR_V31X_CLIENT_ADDR_STATUS_2_REG 0x00000278
> +
> +static void ife_buswr_31x_acquire(struct ife_device *ife, void __iomem *base)
> +{
> + struct ife_buswr_ctx *ctx = &ife->buswr_ctx;
> +
> + if (ife->res->type == CAMSS_IFE_SUBDEV_TYPE_IFE_LITE)
> + ctx->base = base + BUSWR_V31X_LITE_OFFS;
> + else
> + ctx->base = base + BUSWR_V31X_OFFS;
> +
> + ctx->dev = ife->camss->dev;
> +}
> +
> +static void ife_buswr_31x_release(struct ife_buswr_ctx *ctx)
> +{
> + ctx->base = NULL;
> +}
> +
> +static void ife_buswr_31x_wm_config(struct ife_buswr_ctx *ctx, const u8 wm,
> + const struct camss_ife_wm_config *cfg)
> +{
> + void __iomem *base = ctx->base;
> + bool align = cfg->packing_fmt >= BUSWR_V31X_PACKER_FMT_PLAIN16_10_BPP &&
> + cfg->packing_fmt <= BUSWR_V31X_PACKER_FMT_PLAIN16_16_BPP;
> + u32 pattern = 1;
> + u32 period = 0;
> + u32 bytes = cfg->bytes;
> + u32 stride = cfg->stride;
> + u32 lines = cfg->lines;
> + u32 rval;
> +
> + if (cfg->mode_config == BUSWR_CLIENT_CFG_MODE_FRAME_BASED) {
> + bytes = BUSWR_V31X_RDI_DEFAULT_WIDTH;
> + lines = 0;
> + stride = BUSWR_V31X_RDI_DEFAULT_STRIDE;
> + }
> +
> + writel_relaxed(BUSWR_V31X_IIF_CGC_OVERRIDE,
> + base + BUSWR_V31X_IIF_CGC_OVERRIDE_REG);
> + writel_relaxed(0, base + BUSWR_V31X_WM_TEST_BUS_CTRL_REG);
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_CFG_MODE, cfg->mode_config);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_CFG_REG + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_PACKER_CFG_FORMAT, cfg->packing_fmt) |
> + FIELD_PREP(BUSWR_V31X_CLIENT_PACKER_CFG_ALIGN, align);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_PACKER_CFG_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_IMG_CFG0_WIDTH, bytes) |
> + FIELD_PREP(BUSWR_V31X_CLIENT_IMG_CFG0_HEIGHT, lines);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_IMG_CFG0_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_IMG_CFG2_STRIDE, stride);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_IMG_CFG2_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_IRQ_SUBSAMPLE_CFG0_PERIOD, period);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_IRQ_SS_CFG0_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_IRQ_SUBSAMPLE_CFG1_PATTERN, pattern);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_IRQ_SS_CFG1_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_FRAMEDROP_CFG0_PERIOD, period);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_FRAMEDROP_CFG0_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +
> + rval = FIELD_PREP(BUSWR_V31X_CLIENT_FRAMEDROP_CFG1_PATTERN, pattern);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_FRAMEDROP_CFG1_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +}
> +
> +static void ife_buswr_31x_wm_enable(struct ife_buswr_ctx *ctx, u8 wm)
> +{
> + void __iomem *base = ctx->base;
> + u32 rval;
> +
> + rval = readl_relaxed(base + BUSWR_V31X_CLIENT_CFG_REG + BUSWR_V31X_CLIENT_OFFS(wm));
> + rval |= BUSWR_V31X_CLIENT_CFG_EN | BUSWR_V31X_CLIENT_CFG_AUTO_RECOVERY_EN;
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_CFG_REG + BUSWR_V31X_CLIENT_OFFS(wm));
> +}
> +
> +static void ife_buswr_31x_wm_disable(struct ife_buswr_ctx *ctx, u8 wm)
> +{
> + void __iomem *base = ctx->base;
> + u32 rval;
> +
> + rval = readl_relaxed(base + BUSWR_V31X_CLIENT_CFG_REG + BUSWR_V31X_CLIENT_OFFS(wm));
> + rval &= ~(BUSWR_V31X_CLIENT_CFG_EN | BUSWR_V31X_CLIENT_CFG_AUTO_RECOVERY_EN);
> + writel_relaxed(rval, base + BUSWR_V31X_CLIENT_CFG_REG + BUSWR_V31X_CLIENT_OFFS(wm));
> +}
> +
> +static bool ife_buswr_31x_is_fifo_full(struct ife_buswr_ctx *ctx, u8 wm)
> +{
> + u32 rval = readl_relaxed(ctx->base + BUSWR_V31X_CLIENT_OFFS(wm) +
> + BUSWR_V31X_CLIENT_ADDR_STATUS_2_REG);
> +
> + rval = FIELD_GET(BUSWR_V31X_CLIENT_ADDR_STATUS_2_IMAGE_ADDR_FIFO_WORD_CNT, rval);
> +
> + return rval >= BUSWR_V31X_IMG_ADDR_FIFO_MAX_DEPTH;
> +}
> +
> +static void ife_buswr_31x_queue_buf(struct ife_buswr_ctx *ctx, const u8 num_wms, const u8 *wm,
> + dma_addr_t *addr)
> +{
> + int i;
> +
> + for (i = 0; i < num_wms; i++) {
> + if (addr[i])
> + writel_relaxed(addr[i], ctx->base + BUSWR_V31X_CLIENT_ADDR_IMAGE_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm[i]));
> + }
> +}
> +
> +static u32 ife_buswr_31x_consumed_addr(struct ife_buswr_ctx *ctx, u8 wm)
> +{
> + return readl_relaxed(ctx->base + BUSWR_V31X_CLIENT_ADDR_STATUS_0_REG +
> + BUSWR_V31X_CLIENT_OFFS(wm));
> +}
> +
> +static u32 ife_buswr_31x_irq_status(struct ife_buswr_ctx *ctx)
> +{
> + void __iomem *base = ctx->base;
> + u32 bus_stat;
> + u32 iif_stat;
> +
> + bus_stat = readl_relaxed(base + BUSWR_V31X_OVERFLOW_STATUS_REG);
> + writel_relaxed(BIT(0), base + BUSWR_V31X_STATUS_CLEAR_REG);
> + if (IS_BUSWR_V31X_OVERFLOW_ERR(bus_stat)) {
> + writel_relaxed(bus_stat, base + BUSWR_V31X_STATUS_CLEAR_REG);
> + pr_warn("BUSWR common overflow: 0x%x\n", bus_stat);
> + }
> +
> + bus_stat = readl_relaxed(base + BUSWR_V31X_VIOLATION_STATUS_REG);
> + if (IS_BUSWR_V31X_VIOLATION_ERR(bus_stat))
> + pr_warn("BUSWR common violation: 0x%x\n", bus_stat);
> +
> + bus_stat = readl_relaxed(base + BUSWR_V31X_IMG_SIZE_VIOLATION_REG);
> + if (IS_BUSWR_V31X_IMG_SIZE_VIOLATION_ERR(bus_stat))
> + pr_warn("BUSWR common image size violation: 0x%x\n", bus_stat);
> +
> + iif_stat = readl_relaxed(base + BUSWR_V31X_IIF_IRQ_STATUS_S0);
> + writel_relaxed(iif_stat, base + BUSWR_V31X_IIF_IRQ_CLEAR_S0);
> + if (iif_stat) {
> + if (IS_BUSWR_V31X_IIF_IRQ_S0_IMG_SIZE_VIOLATION(iif_stat))
> + pr_warn("BUSWR image size violation from CCIF: 0x%x\n", iif_stat);
> + if (IS_BUSWR_V31X_IIF_IRQ_S0_VIOLATION(iif_stat))
> + pr_warn("BUSWR violation from CCIF: 0x%x\n", iif_stat);
> + }
> +
> + writel_relaxed(BUSWR_V31X_IIF_IRQ_CMD_CLEAR, base + BUSWR_V31X_IIF_IRQ_CMD_REG);
> +
> + return iif_stat;
> +}
> +
> +static void ife_buswr_31x_irq_enable(struct ife_buswr_ctx *ctx)
> +{
> + writel_relaxed(~0, ctx->base + BUSWR_V31X_IIF_IRQ_MASK_S0);
> +}
> +
> +static void ife_buswr_31x_irq_disable(struct ife_buswr_ctx *ctx)
> +{
> + void __iomem *base = ctx->base;
> +
> + writel_relaxed(0, base + BUSWR_V31X_IIF_IRQ_MASK_S0);
> + writel_relaxed(~0, base + BUSWR_V31X_IIF_IRQ_CLEAR_S0);
> + writel_relaxed(BUSWR_V31X_IIF_IRQ_CMD_CLEAR, base + BUSWR_V31X_IIF_IRQ_CMD_REG);
> +}
> +
> +const struct ife_hw_buswr_ops ife_buswr_31x_ops = {
> + .acquire = ife_buswr_31x_acquire,
> + .release = ife_buswr_31x_release,
> + .irq_enable = ife_buswr_31x_irq_enable,
> + .irq_disable = ife_buswr_31x_irq_disable,
> + .wm_config = ife_buswr_31x_wm_config,
> + .wm_enable = ife_buswr_31x_wm_enable,
> + .wm_disable = ife_buswr_31x_wm_disable,
> + .queue_buf = ife_buswr_31x_queue_buf,
> + .consumed_addr = ife_buswr_31x_consumed_addr,
> + .irq_status = ife_buswr_31x_irq_status,
> + .is_fifo_full = ife_buswr_31x_is_fifo_full,
> +};
> diff --git a/drivers/media/platform/qcom/camss/camss-ife.h b/drivers/media/platform/qcom/camss/camss-ife.h
> index c163c336fcc3..efbb1e75d550 100644
> --- a/drivers/media/platform/qcom/camss/camss-ife.h
> +++ b/drivers/media/platform/qcom/camss/camss-ife.h
> @@ -397,6 +397,7 @@ camss_ife_pipe_for_stream_id(int nstreams,
> extern const struct ife_pads_descriptors ife_pads_v20x;
> extern const struct ife_hw_top_ops ife_top_20x_ops;
> extern const struct ife_hw_buswr_ops ife_buswr_20x_ops;
> +extern const struct ife_hw_buswr_ops ife_buswr_31x_ops;
> extern const struct camss_mod_ops ife_mod_v10x_ops;
>
> extern const struct ife_pads_descriptors ife_lite_pads_v20x;
next prev parent reply other threads:[~2026-10-07 6:44 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 22:39 [PATCH 00/45] media: qcom: camss: add IFE pixel path support Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 01/45] media: qcom: camss: support CSID streams on one source pad Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 02/45] media: qcom: camss: add CSID gen2 pixel path Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 03/45] media: qcom: camss: report probe failures Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 04/45] dt-bindings: media: qcom,sm8250-camss: add pixel path variant Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07 7:41 ` Krzysztof Kozlowski
2026-10-07 7:55 ` Gjorgji Rosikopulos (Consultant)
2026-10-07 9:52 ` Bryan O'Donoghue
2026-10-07 10:00 ` Gjorgji Rosikopulos (Consultant)
2026-10-06 22:39 ` [PATCH 05/45] media: qcom: camss: keep CSIPHY lanes active while streaming Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 06/45] media: qcom: camss: add IFE subdevice interface Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 07/45] media: qcom: camss: sm8250: add IFE BUS v20x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 08/45] media: qcom: camss: sm8250: add IFE CamIF v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 09/45] media: qcom: camss: sm8250: add IFE scaler v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 10/45] media: qcom: camss: sm8250: add IFE module engine v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 11/45] media: qcom: camss: sm8250: add IFE top v20x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 12/45] media: qcom: camss: sm8250: add IFE Lite top v10x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 13/45] media: qcom: camss: sm8250: add IFE pad descriptors Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 14/45] media: qcom: camss: formats: add pixel format lookup helpers Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 15/45] media: qcom: camss: video: use helpers for line-based formats Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 16/45] media: qcom: camss: video: add managed streaming callbacks Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 17/45] media: qcom: camss: add common IFE subdevice core Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07 9:42 ` Bryan O'Donoghue
2026-10-07 9:53 ` Gjorgji Rosikopulos (Consultant)
2026-10-06 22:39 ` [PATCH 18/45] media: qcom: camss: integrate IFE devices Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 19/45] media: qcom: camss: sm8250: add pixel path resources Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 20/45] media: uapi: add Qualcomm IFE statistics Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 21/45] media: v4l2: add Qualcomm IFE statistics format Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 22/45] media: qcom: camss: add IFE statistics output Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 23/45] media: uapi: add Qualcomm IFE parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 24/45] media: v4l2: add Qualcomm IFE parameters format Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 25/45] media: qcom: camss: sm8250: apply IFE parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 26/45] dt-bindings: media: qcom,sa8775p-camss: add pixel path variant Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07 9:49 ` Bryan O'Donoghue
2026-10-07 9:57 ` Gjorgji Rosikopulos (Consultant)
2026-10-06 22:39 ` [PATCH 27/45] media: qcom: camss: sa8775p: add IFE BUS v3.1x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07 6:44 ` Gjorgji Rosikopulos (Consultant) [this message]
2026-10-06 22:39 ` [PATCH 28/45] media: qcom: camss: sa8775p: add IFE scaler v2.3x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 29/45] media: qcom: camss: sa8775p: add IFE top v4.1x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 30/45] media: qcom: camss: sa8775p: add IFE lite top v3.0x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 31/45] media: qcom: camss: sa8775p: add IFE pad descriptors Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 32/45] media: qcom: camss: sa8775p: add IFE completion groups Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 33/45] media: qcom: camss: sa8775p: add CSID pixel path Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 34/45] media: qcom: camss: sa8775p: add IFE modules v4.1x Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 35/45] media: qcom: camss: sa8775p: add pixel path resources Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 36/45] media: qcom: camss: sa8775p: add CCM parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 37/45] media: qcom: camss: sa8775p: add LSC parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 38/45] media: qcom: camss: sa8775p: add gamma parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 39/45] media: qcom: camss: sa8775p: add white balance parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 40/45] media: qcom: camss: sa8775p: add AWB BG parameters Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 41/45] media: qcom: camss: create TPG links for IFE Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 42/45] media: qcom: camss: use one lane for TPG internal path Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 43/45] media: qcom: camss: ife: queue params buffers in FIFO order Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 44/45] dt-bindings: media: qcom,qcs8300-camss: add pixel path variant Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-06 22:39 ` [PATCH 45/45] media: qcom: camss: sa8775p: add pixel path resources for QCS8300 Gjorgji.Rosikopulos.gjorgji.rosikopulos
2026-10-07 9:59 ` [PATCH 00/45] media: qcom: camss: add IFE pixel path support Bryan O'Donoghue
2026-10-07 10:03 ` Gjorgji Rosikopulos (Consultant)
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=b9ed7848-36ef-4b70-9d5c-b18af9eee83b@oss.qualcomm.com \
--to=gjorgji.rosikopulos@oss.qualcomm.com \
--cc=atanas.filipov@oss.qualcomm.com \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=hariram.purushothaman@oss.qualcomm.com \
--cc=jigarkumar.zala@oss.qualcomm.com \
--cc=johannes.goede@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=loic.poulain@oss.qualcomm.com \
--cc=mchehab@kernel.org \
--cc=pshrotri@qti.qualcomm.com \
--cc=robh@kernel.org \
--cc=vikram.sharma@oss.qualcomm.com \
--cc=vladimir.zapolskiy@linaro.org \
/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
all inboxes | Powered by JetHome®