From: Michael Riesch <michael.riesch@collabora.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: "Mehdi Djait" <mehdi.djait@linux.intel.com>,
"Maxime Chevallier" <maxime.chevallier@bootlin.com>,
"Théo Lebrun" <theo.lebrun@bootlin.com>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
"Gerald Loacker" <gerald.loacker@wolfvision.net>,
"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
"Markus Elfring" <Markus.Elfring@web.de>,
"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Heiko Stuebner" <heiko@sntech.de>,
"Kever Yang" <kever.yang@rock-chips.com>,
"Nicolas Dufresne" <nicolas.dufresne@collabora.com>,
"Sebastian Reichel" <sebastian.reichel@collabora.com>,
"Collabora Kernel Team" <kernel@collabora.com>,
"Paul Kocialkowski" <paulk@sys-base.io>,
"Alexander Shiyan" <eagle.alexander923@gmail.com>,
"Val Packett" <val@packett.cool>, "Rob Herring" <robh@kernel.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v11 10/17] media: rockchip: rkcif: add support for px30 vip dvp capture
Date: Thu, 9 Oct 2025 10:26:02 +0200 [thread overview]
Message-ID: <c8cf6ce8-87e9-41ef-875f-e1f8f103ac78@collabora.com> (raw)
In-Reply-To: <aOV0SrQWlVUTx1-R@kekkonen.localdomain>
Hi Sakari,
Thanks for the review.
On 10/7/25 22:12, Sakari Ailus wrote:
> [...]
>>
>> static const char *const rk3568_vicap_clks[] = {
>> @@ -62,11 +64,21 @@ MODULE_DEVICE_TABLE(of, rkcif_plat_of_match);
>>
>> static int rkcif_register(struct rkcif_device *rkcif)
>> {
>> + int ret;
>> +
>> + ret = rkcif_dvp_register(rkcif);
>> + if (ret && ret != -ENODEV)
>> + goto err;
>
> return ret == -ENODEV ? 0 : ret;
This is written in that way so that the patch 12/17 does not need to
modify recently added lines and simply needs to add new lines. OK with that?
>
>> +
>> return 0;
>> +
>> +err:
>> + return ret;
>> }
>>
>> static void rkcif_unregister(struct rkcif_device *rkcif)
>> {
>> + rkcif_dvp_unregister(rkcif);
>> }
>>
>> static int rkcif_notifier_bound(struct v4l2_async_notifier *notifier,
>> @@ -111,6 +123,9 @@ static irqreturn_t rkcif_isr(int irq, void *ctx)
>> {
>> irqreturn_t ret = IRQ_NONE;
>>
>> + if (rkcif_dvp_isr(irq, ctx) == IRQ_HANDLED)
>> + ret = IRQ_HANDLED;
>> +
>> return ret;
>> }
>>
>> diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-regs.h b/drivers/media/platform/rockchip/rkcif/rkcif-regs.h
>> new file mode 100644
>> index 000000000000..d50b6e14b5af
>> --- /dev/null
>> +++ b/drivers/media/platform/rockchip/rkcif/rkcif-regs.h
>> @@ -0,0 +1,131 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +/*
>> + * Rockchip Camera Interface (CIF) Driver
>> + *
>> + * Copyright (C) 2018 Rockchip Electronics Co., Ltd.
>> + * Copyright (C) 2023 Mehdi Djait <mehdi.djait@bootlin.com>
>> + * Copyright (C) 2025 Michael Riesch <michael.riesch@wolfvision.net>
>> + */
>> +
>> +#ifndef _RKCIF_REGS_H
>> +#define _RKCIF_REGS_H
>> +
>> +#define RKCIF_REGISTER_NOTSUPPORTED 0x420000
>> +#define RKCIF_FETCH_Y(VAL) ((VAL) & 0x1fff)
>> +#define RKCIF_XY_COORD(x, y) (((y) << 16) | (x))
>
> Why the use of spaces for alignment to a column not divisible by 8? For a
> new header that doesn't seem to make sense.
Hm. I use clang-format to format my code and apparently it looks for the
longest define name (RKCIF_FORMAT_BT1120_CLOCK_DOUBLE_EDGES ex aequo
with others) and adds a space there. The other defines are aligned to
that one. I don't think this behavior of clang-format can be adjusted
(only option would be not to align anything, i.e.,
#define RKCIF_REGISTER_NOTSUPPORTED 0x420000
#define RKCIF_FETCH_Y(VAL) ((VAL) & 0x1fff)
#define RKCIF_XY_COORD(x, y) (((y) << 16) | (x))
...
If you don't find what clang-format produces appropriate, I'll change it
manually. Is there any strict rule? What should it look like in the end?
Align with tabs only to something divisible by 8?
Best regards,
Michael
>
>> +
>> +/* DVP register contents */
>> +#define RKCIF_CTRL_ENABLE_CAPTURE BIT(0)
>> +#define RKCIF_CTRL_MODE_PINGPONG BIT(1)
>> +#define RKCIF_CTRL_MODE_LINELOOP BIT(2)
>> +#define RKCIF_CTRL_AXI_BURST_16 (0xf << 12)
>> +
>> +#define RKCIF_INTEN_FRAME_END_EN BIT(0)
>> +#define RKCIF_INTEN_LINE_ERR_EN BIT(2)
>> +#define RKCIF_INTEN_BUS_ERR_EN BIT(6)
>> +#define RKCIF_INTEN_SCL_ERR_EN BIT(7)
>> +#define RKCIF_INTEN_PST_INF_FRAME_END_EN BIT(9)
>> +
>> +#define RKCIF_INTSTAT_CLS 0x3ff
>> +#define RKCIF_INTSTAT_FRAME_END BIT(0)
>> +#define RKCIF_INTSTAT_LINE_END BIT(1)
>> +#define RKCIF_INTSTAT_LINE_ERR BIT(2)
>> +#define RKCIF_INTSTAT_PIX_ERR BIT(3)
>> +#define RKCIF_INTSTAT_DFIFO_OF BIT(5)
>> +#define RKCIF_INTSTAT_BUS_ERR BIT(6)
>> +#define RKCIF_INTSTAT_PRE_INF_FRAME_END BIT(8)
>> +#define RKCIF_INTSTAT_PST_INF_FRAME_END BIT(9)
>> +#define RKCIF_INTSTAT_FRAME_END_CLR BIT(0)
>> +#define RKCIF_INTSTAT_LINE_END_CLR BIT(1)
>> +#define RKCIF_INTSTAT_LINE_ERR_CLR BIT(2)
>> +#define RKCIF_INTSTAT_PST_INF_FRAME_END_CLR BIT(9)
>> +#define RKCIF_INTSTAT_ERR 0xfc
>> +
>> +#define RKCIF_FRAME_STAT_CLS 0x00
>> +#define RKCIF_FRAME_FRM0_STAT_CLS 0x20
>> +
>> +#define RKCIF_FORMAT_VSY_HIGH_ACTIVE BIT(0)
>> +#define RKCIF_FORMAT_HSY_LOW_ACTIVE BIT(1)
>> +
>> +#define RKCIF_FORMAT_INPUT_MODE_YUV (0x00 << 2)
>> +#define RKCIF_FORMAT_INPUT_MODE_PAL (0x02 << 2)
>> +#define RKCIF_FORMAT_INPUT_MODE_NTSC (0x03 << 2)
>> +#define RKCIF_FORMAT_INPUT_MODE_BT1120 (0x07 << 2)
>> +#define RKCIF_FORMAT_INPUT_MODE_RAW (0x04 << 2)
>> +#define RKCIF_FORMAT_INPUT_MODE_JPEG (0x05 << 2)
>> +#define RKCIF_FORMAT_INPUT_MODE_MIPI (0x06 << 2)
>> +
>> +#define RKCIF_FORMAT_YUV_INPUT_ORDER_UYVY (0x00 << 5)
>> +#define RKCIF_FORMAT_YUV_INPUT_ORDER_YVYU (0x01 << 5)
>> +#define RKCIF_FORMAT_YUV_INPUT_ORDER_VYUY (0x02 << 5)
>> +#define RKCIF_FORMAT_YUV_INPUT_ORDER_YUYV (0x03 << 5)
>> +#define RKCIF_FORMAT_YUV_INPUT_422 (0x00 << 7)
>> +#define RKCIF_FORMAT_YUV_INPUT_420 BIT(7)
>> +
>> +#define RKCIF_FORMAT_INPUT_420_ORDER_ODD BIT(8)
>> +
>> +#define RKCIF_FORMAT_CCIR_INPUT_ORDER_EVEN BIT(9)
>> +
>> +#define RKCIF_FORMAT_RAW_DATA_WIDTH_8 (0x00 << 11)
>> +#define RKCIF_FORMAT_RAW_DATA_WIDTH_10 (0x01 << 11)
>> +#define RKCIF_FORMAT_RAW_DATA_WIDTH_12 (0x02 << 11)
>> +
>> +#define RKCIF_FORMAT_YUV_OUTPUT_422 (0x00 << 16)
>> +#define RKCIF_FORMAT_YUV_OUTPUT_420 BIT(16)
>> +
>> +#define RKCIF_FORMAT_OUTPUT_420_ORDER_EVEN (0x00 << 17)
>> +#define RKCIF_FORMAT_OUTPUT_420_ORDER_ODD BIT(17)
>> +
>> +#define RKCIF_FORMAT_RAWD_DATA_LITTLE_ENDIAN (0x00 << 18)
>> +#define RKCIF_FORMAT_RAWD_DATA_BIG_ENDIAN BIT(18)
>> +
>> +#define RKCIF_FORMAT_UV_STORAGE_ORDER_UVUV (0x00 << 19)
>> +#define RKCIF_FORMAT_UV_STORAGE_ORDER_VUVU BIT(19)
>> +
>> +#define RKCIF_FORMAT_BT1120_CLOCK_SINGLE_EDGES (0x00 << 24)
>> +#define RKCIF_FORMAT_BT1120_CLOCK_DOUBLE_EDGES BIT(24)
>> +#define RKCIF_FORMAT_BT1120_TRANSMIT_INTERFACE (0x00 << 25)
>> +#define RKCIF_FORMAT_BT1120_TRANSMIT_PROGRESS BIT(25)
>> +#define RKCIF_FORMAT_BT1120_YC_SWAP BIT(26)
>> +
>> +#define RKCIF_SCL_CTRL_ENABLE_SCL_DOWN BIT(0)
>> +#define RKCIF_SCL_CTRL_ENABLE_SCL_UP BIT(1)
>> +#define RKCIF_SCL_CTRL_ENABLE_YUV_16BIT_BYPASS BIT(4)
>> +#define RKCIF_SCL_CTRL_ENABLE_RAW_16BIT_BYPASS BIT(5)
>> +#define RKCIF_SCL_CTRL_ENABLE_32BIT_BYPASS BIT(6)
>> +#define RKCIF_SCL_CTRL_DISABLE_32BIT_BYPASS (0x00 << 6)
>> +
>> +#define RKCIF_INTSTAT_F0_READY BIT(0)
>> +#define RKCIF_INTSTAT_F1_READY BIT(1)
>> +
>> +/* GRF register offsets and contents */
>> +#define RK3568_GRF_VI_CON0 0x340
>> +#define RK3568_GRF_VI_CON1 0x344
>> +#define RK3568_GRF_VI_STATUS0 0x348
>> +
>> +#define RK3568_GRF_VI_CON1_CIF_DATAPATH BIT(9)
>> +#define RK3568_GRF_VI_CON1_CIF_CLK_DELAYNUM GENMASK(6, 0)
>> +
>> +#define RK3568_GRF_WRITE_ENABLE(x) ((x) << 16)
>> +
>> +enum rkcif_dvp_register_index {
>> + RKCIF_DVP_CTRL,
>> + RKCIF_DVP_INTEN,
>> + RKCIF_DVP_INTSTAT,
>> + RKCIF_DVP_FOR,
>> + RKCIF_DVP_LINE_NUM_ADDR,
>> + RKCIF_DVP_FRM0_ADDR_Y,
>> + RKCIF_DVP_FRM0_ADDR_UV,
>> + RKCIF_DVP_FRM1_ADDR_Y,
>> + RKCIF_DVP_FRM1_ADDR_UV,
>> + RKCIF_DVP_VIR_LINE_WIDTH,
>> + RKCIF_DVP_SET_SIZE,
>> + RKCIF_DVP_SCL_CTRL,
>> + RKCIF_DVP_CROP,
>> + RKCIF_DVP_FRAME_STATUS,
>> + RKCIF_DVP_LAST_LINE,
>> + RKCIF_DVP_LAST_PIX,
>> + RKCIF_DVP_REGISTER_MAX
>> +};
>> +
>> +#endif
>>
>
next prev parent reply other threads:[~2025-10-09 8:26 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <HSTnNzc6MTLHGWih5qjlI2nvVECP8FVdcQVeBON4KlWYLtEaWIlNmEpKTU_vlqitbIIHMpabKnvnmpEQFqHYxQ==@protonmail.internalid>
2025-09-17 15:38 ` [PATCH v11 00/17] media: rockchip: add a driver for the rockchip camera interface Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 01/17] Documentation: admin-guide: media: add " Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 02/17] media: dt-bindings: video-interfaces: add defines for sampling modes Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 03/17] media: dt-bindings: add rockchip px30 vip Michael Riesch via B4 Relay
2025-09-30 0:17 ` Bryan O'Donoghue
2025-09-17 15:38 ` [PATCH v11 04/17] media: dt-bindings: add rockchip rk3568 vicap Michael Riesch via B4 Relay
2025-09-30 0:20 ` Bryan O'Donoghue
2025-09-17 15:38 ` [PATCH v11 05/17] media: dt-bindings: add rockchip rk3568 mipi csi-2 receiver Michael Riesch via B4 Relay
2025-09-22 17:11 ` Rob Herring
2025-09-29 21:46 ` Michael Riesch
2025-10-07 20:00 ` Sakari Ailus
2025-10-09 9:09 ` Michael Riesch
2025-09-17 15:38 ` [PATCH v11 06/17] media: rockchip: add driver for the rockchip " Michael Riesch via B4 Relay
2025-10-10 12:01 ` Bryan O'Donoghue
2025-09-17 15:38 ` [PATCH v11 07/17] media: rockchip: add driver for the rockchip camera interface Michael Riesch via B4 Relay
2025-09-19 7:49 ` Gerald Loacker
2025-10-10 12:29 ` Bryan O'Donoghue
2025-09-17 15:38 ` [PATCH v11 08/17] media: rockchip: rkcif: add abstraction for interface and crop blocks Michael Riesch via B4 Relay
2025-09-19 7:49 ` Gerald Loacker
2025-09-17 15:38 ` [PATCH v11 09/17] media: rockchip: rkcif: add abstraction for dma blocks Michael Riesch via B4 Relay
2025-09-19 7:50 ` Gerald Loacker
2025-09-17 15:38 ` [PATCH v11 10/17] media: rockchip: rkcif: add support for px30 vip dvp capture Michael Riesch via B4 Relay
2025-09-19 7:51 ` Gerald Loacker
2025-10-07 20:12 ` Sakari Ailus
2025-10-09 8:26 ` Michael Riesch [this message]
2025-09-17 15:38 ` [PATCH v11 11/17] media: rockchip: rkcif: add support for rk3568 vicap " Michael Riesch via B4 Relay
2025-09-19 7:52 ` Gerald Loacker
2025-09-17 15:38 ` [PATCH v11 12/17] media: rockchip: rkcif: add support for rk3568 vicap mipi capture Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 13/17] arm64: defconfig: enable rockchip camera interface and mipi csi-2 receiver Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 14/17] arm64: dts: rockchip: add the vip node to px30 Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 15/17] arm64: dts: rockchip: add vicap node to rk356x Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 16/17] arm64: dts: rockchip: add mipi csi-2 receiver " Michael Riesch via B4 Relay
2025-09-17 15:38 ` [PATCH v11 17/17] arm64: dts: rockchip: enable vicap dvp on wolfvision pf5 io expander Michael Riesch via B4 Relay
2025-09-19 7:48 ` [PATCH v11 00/17] media: rockchip: add a driver for the rockchip camera interface Gerald Loacker
2025-10-10 12:15 ` Bryan O'Donoghue
2025-10-10 13:46 ` Michael Riesch
2025-10-13 7:00 ` Gerald Loacker
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=c8cf6ce8-87e9-41ef-875f-e1f8f103ac78@collabora.com \
--to=michael.riesch@collabora.com \
--cc=Markus.Elfring@web.de \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=eagle.alexander923@gmail.com \
--cc=gerald.loacker@wolfvision.net \
--cc=heiko@sntech.de \
--cc=kernel@collabora.com \
--cc=kever.yang@rock-chips.com \
--cc=krzk+dt@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=maxime.chevallier@bootlin.com \
--cc=mchehab@kernel.org \
--cc=mehdi.djait@linux.intel.com \
--cc=nicolas.dufresne@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=paulk@sys-base.io \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=sebastian.reichel@collabora.com \
--cc=theo.lebrun@bootlin.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=val@packett.cool \
/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;
as well as URLs for NNTP newsgroup(s).