mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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;


  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®