From 6094a7765eaccfb21c6781f8d2997d2a3b36798e Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Fri, 29 Aug 2025 16:58:43 +0800 Subject: [PATCH 1/8] ASoC: rockchip: i2s-tdm: Compatible for deprecated property 'clk-trcm' In kernel 6.1 and later versions, the property 'clk-trcm' has been updated: rockchip,clk-trcm -> rockchip,trcm-sync-tx/rx-only Not all products' DT have been updated to use the new property. Therefore, still support for old property for now, and a prompt is logged to suggest to adopt the new property. The old property will be removed in a future version. Log: Deprecated property 'rockchip,clk-trcm', please use 'rockchip,trcm-sync-tx/rx-only' in DT Signed-off-by: Sugar Zhang Change-Id: I594ba932486440d6eefc65abb54516d530ad090b --- sound/soc/rockchip/rockchip_i2s_tdm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index ce832212b0be..8b42006a71b0 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -3294,6 +3294,11 @@ static int rockchip_i2s_tdm_probe(struct platform_device *pdev) i2s_tdm->frame_width = 64; i2s_tdm->clk_trcm = TRCM_TXRX; + if (!of_property_read_u32(node, "rockchip,clk-trcm", &val)) { + if (val >= 0 && val <= 2) + i2s_tdm->clk_trcm = val; + dev_warn(i2s_tdm->dev, "Deprecated property 'rockchip,clk-trcm', please use 'rockchip,trcm-sync-tx/rx-only' in DT\n"); + } if (of_property_read_bool(node, "rockchip,trcm-sync-tx-only")) i2s_tdm->clk_trcm = TRCM_TX; if (of_property_read_bool(node, "rockchip,trcm-sync-rx-only")) { From 750ba34f199f23e08ddf0f8244cfaa09ac84c23e Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Fri, 29 Aug 2025 17:41:07 +0800 Subject: [PATCH 2/8] media: rockchip: vicap clean cache of rdbk_rx_buf after stream off Change-Id: I5c7d1779fe81ab01bdabf48e197ac80fbf680766 Signed-off-by: Zefa Chen --- drivers/media/platform/rockchip/cif/subdev-itf.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/platform/rockchip/cif/subdev-itf.c b/drivers/media/platform/rockchip/cif/subdev-itf.c index 88c75c033cdd..cad599f5831e 100644 --- a/drivers/media/platform/rockchip/cif/subdev-itf.c +++ b/drivers/media/platform/rockchip/cif/subdev-itf.c @@ -342,10 +342,15 @@ static void sditf_free_buf(struct sditf_priv *priv) if (priv->hdr_cfg.hdr_mode == HDR_X2) { rkcif_free_rx_buf(&cif_dev->stream[0], cif_dev->stream[0].rx_buf_num); rkcif_free_rx_buf(&cif_dev->stream[1], cif_dev->stream[1].rx_buf_num); + cif_dev->rdbk_rx_buf[RDBK_L] = NULL; + cif_dev->rdbk_rx_buf[RDBK_M] = NULL; } else if (priv->hdr_cfg.hdr_mode == HDR_X3) { rkcif_free_rx_buf(&cif_dev->stream[0], cif_dev->stream[0].rx_buf_num); rkcif_free_rx_buf(&cif_dev->stream[1], cif_dev->stream[1].rx_buf_num); rkcif_free_rx_buf(&cif_dev->stream[2], cif_dev->stream[2].rx_buf_num); + cif_dev->rdbk_rx_buf[RDBK_L] = NULL; + cif_dev->rdbk_rx_buf[RDBK_M] = NULL; + cif_dev->rdbk_rx_buf[RDBK_S] = NULL; } else { rkcif_free_rx_buf(&cif_dev->stream[0], cif_dev->stream[0].rx_buf_num); } From 5672204e8a3d31273d0f0f565c5806a064b37ef2 Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Tue, 2 Sep 2025 15:47:43 +0800 Subject: [PATCH 3/8] drm/rockchip: drv: Fix kernel-doc warning Fix warning `warning: Cannot understand * @vrefresh_khz` Fixes: d0e8f558bc58 ("drm/rockchip: vop2: Support hdmi qms-vrr") Change-Id: Ic41739628726ee5c36f951750b24e01515c62e99 Signed-off-by: Algea Cao --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 8ca0dbd9d15d..a3a53163f262 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -101,7 +101,7 @@ static const struct mvrr_const_val const_hdmi720p60_6000 = { .vtotal_fixed = 750, }; -/** +/* * @vrefresh_khz: qms-vrr target refresh rate is 59.94Hz * @vtotal_fixed: When switch to target refresh rate, vtotal is 750 * @bit_len: frac_array's bit length From 7e8e41f4dfc8cb71e3dff2f20396dbe0f5884617 Mon Sep 17 00:00:00 2001 From: Yuefu Su Date: Sat, 23 Aug 2025 11:12:33 +0800 Subject: [PATCH 4/8] ARM: dts: rockchip: rv1126b-thunder-boot: Add DCLK_CSI2HOST0 to protect Signed-off-by: Yuefu Su Change-Id: I9a5a48974ca95cab01847f479b3443b200434d9a --- arch/arm/boot/dts/rv1126b-thunder-boot.dtsi | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/rv1126b-thunder-boot.dtsi b/arch/arm/boot/dts/rv1126b-thunder-boot.dtsi index b66d0d5f6d18..c16aa894e0cb 100644 --- a/arch/arm/boot/dts/rv1126b-thunder-boot.dtsi +++ b/arch/arm/boot/dts/rv1126b-thunder-boot.dtsi @@ -19,7 +19,8 @@ <&cru CLK_CORE_ISP>, <&cru ISP0CLK_VICAP>, <&cru ACLK_VICAP>, <&cru HCLK_VICAP>, <&cru DCLK_VICAP>, <&cru ISP0CLK_VICAP>, - <&cru PCLK_CSI2HOST0>, <&cru PCLK_CSI2HOST1>, + <&cru PCLK_CSI2HOST0>, + <&cru DCLK_CSI2HOST0>, <&cru CLK_I2C4>, <&cru PCLK_I2C4>; clock-names = "clk_hpmcu", "pclk_hpmcu_intmux", "pclk_hpmcu_mailbox", @@ -29,7 +30,8 @@ "clk_isp_core", "clk_isp_core_vicap", "aclk_cif","hclk_cif", "dclk_cif", "isp0clk_cif", - "pclk_csi2host0", "pclk_csi2host1", + "pclk_csi2host0", + "dclk_csi2host0", "clk_i2c4", "pclk_i2c4"; }; From 45d263f7e47ce821a54a3e061e6bac2082293774 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Thu, 28 Aug 2025 15:43:33 +0800 Subject: [PATCH 5/8] media: rockchip: vicap skip cache resume_mode when it is an illegal value Change-Id: I01b080794e1a7cd601f4418ef313268be1228313 Signed-off-by: Zefa Chen --- drivers/media/platform/rockchip/cif/capture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index 3c9e996d2386..e5d691085789 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -10120,7 +10120,7 @@ static long rkcif_ioctl_default(struct file *file, void *fh, mutex_unlock(&stream->cifdev->stream_lock); } stream_param->frame_num = dev->stream[0].frame_idx - 1; - if (!dev->is_rtt_suspend) { + if (!dev->is_rtt_suspend && stream_param->resume_mode != -1) { dev->resume_mode = stream_param->resume_mode; v4l2_dbg(3, rkcif_debug, &dev->v4l2_dev, "set resume mode %d\n", dev->resume_mode); From 93945464f5aeffc2798e291267609dffebe6f60e Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Thu, 28 Aug 2025 15:32:00 +0800 Subject: [PATCH 6/8] include: uapi: rkcif-config: add describe for quick stream control Change-Id: I8fa27286cea0972f4967f0fa91611b499d9a7358 Signed-off-by: Zefa Chen --- include/uapi/linux/rkcif-config.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/uapi/linux/rkcif-config.h b/include/uapi/linux/rkcif-config.h index 57c8b536caae..f37179abf92b 100644 --- a/include/uapi/linux/rkcif-config.h +++ b/include/uapi/linux/rkcif-config.h @@ -129,6 +129,12 @@ struct rkcif_csi_info { int dphy_vendor[RKCIF_MAX_CSI_NUM]; }; +/* + * function: to quick start or stop stream + * on(input): to start or stop stream + * frame_num(output): for aiq to record frame number after stop stream + * resume_mode(input): set resume_mode to driver for AOV, set -1 for other case + */ struct rkcif_quick_stream_param { int on; __u32 frame_num; From 2fe7f95acf64186dbf46085423bc3688c7d1d8b0 Mon Sep 17 00:00:00 2001 From: Yuefu Su Date: Mon, 25 Aug 2025 09:34:56 +0800 Subject: [PATCH 7/8] ARM: dts: rockchip: rv1126b-evb2-v10-tb-400w-emmc: fix isp reserve memory error Signed-off-by: Yuefu Su Change-Id: I7577ec906a7d4713873311d91441eff93ef53ef4 --- arch/arm/boot/dts/rv1126b-evb2-v10-tb-400w-emmc.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/rv1126b-evb2-v10-tb-400w-emmc.dts b/arch/arm/boot/dts/rv1126b-evb2-v10-tb-400w-emmc.dts index 105bdd87ad4b..f73405db10a7 100644 --- a/arch/arm/boot/dts/rv1126b-evb2-v10-tb-400w-emmc.dts +++ b/arch/arm/boot/dts/rv1126b-evb2-v10-tb-400w-emmc.dts @@ -74,8 +74,8 @@ &rkisp_thunderboot { /* reg's offset MUST match with RTOS */ /* - * vicap, capture raw10, ceil(w*10/8/256)*256*h *4(buf num) - * e.g. 2688x1520: 0x14c8000 + * vicap, capture raw10, ceil(w*10/8/256)*256*h *4(buf num) + sizeof(rkisp_thunderboot_resmem_head) + * e.g. 2688x1520: 0x14c80000 + 0x9000 */ - reg = <0x41320000 0x14c8000>; + reg = <0x41320000 0x14d1000>; }; From 993b7f02f5a7e53cc368e74820d2e07c3b342407 Mon Sep 17 00:00:00 2001 From: Yandong Lin Date: Mon, 1 Sep 2025 21:18:11 +0800 Subject: [PATCH 8/8] iommu: rockchip: Register pm ops to LATE_SYSTEM_SLEEP_PM_OPS Some master device resume early but the iommu has not yet resume, which will cause the iommu to be inaccessible. So set LATE_SYSTEM_SLEEP_PM_OPS for iommu pm ops, which will resume early and suspend late. Change-Id: I9424198900a56004098e8cf6c3194baa62eeda09 Signed-off-by: Yandong Lin --- drivers/iommu/rockchip-iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c index b7c25cd59bdb..6402b28d80f3 100644 --- a/drivers/iommu/rockchip-iommu.c +++ b/drivers/iommu/rockchip-iommu.c @@ -1819,8 +1819,8 @@ static int __maybe_unused rk_iommu_resume(struct device *dev) static const struct dev_pm_ops rk_iommu_pm_ops = { SET_RUNTIME_PM_OPS(rk_iommu_suspend, rk_iommu_resume, NULL) - SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, - pm_runtime_force_resume) + LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) }; static struct rk_iommu_ops iommu_data_ops_v1 = {