From 9999e48639b3cecb08ffb37358bcba3b48161b29 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 08:50:17 +0000
Subject: [PATCH] add ax88772_rst

---
 kernel/drivers/media/platform/rockchip/ispp/dev.c |  116 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 52 insertions(+), 64 deletions(-)

diff --git a/kernel/drivers/media/platform/rockchip/ispp/dev.c b/kernel/drivers/media/platform/rockchip/ispp/dev.c
index dfb0d26..a58bf3b 100644
--- a/kernel/drivers/media/platform/rockchip/ispp/dev.c
+++ b/kernel/drivers/media/platform/rockchip/ispp/dev.c
@@ -132,95 +132,80 @@
 		stream->linked = true;
 	}
 	source = &stream->vnode.vdev.entity;
-	ret = media_create_pad_link(source, 0, sink,
-				    RKISPP_PAD_SINK, flags);
+	ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK, flags);
 	if (ret < 0)
 		return ret;
 
 	/* params links */
 	flags = MEDIA_LNK_FL_ENABLED;
-	source = &ispp_dev->params_vdev[PARAM_VDEV_TNR].vnode.vdev.entity;
-	ret = media_create_pad_link(source, 0, sink,
-				    RKISPP_PAD_SINK_PARAMS, flags);
-	if (ret < 0)
-		return ret;
-
-	flags = MEDIA_LNK_FL_ENABLED;
-	source = &ispp_dev->params_vdev[PARAM_VDEV_NR].vnode.vdev.entity;
-	ret = media_create_pad_link(source, 0, sink,
-				    RKISPP_PAD_SINK_PARAMS, flags);
-	if (ret < 0)
-		return ret;
-
-	flags = MEDIA_LNK_FL_ENABLED;
 	source = &ispp_dev->params_vdev[PARAM_VDEV_FEC].vnode.vdev.entity;
-	ret = media_create_pad_link(source, 0, sink,
-				    RKISPP_PAD_SINK_PARAMS, flags);
+	ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags);
 	if (ret < 0)
 		return ret;
+	ispp_dev->stream_vdev.module_ens = ISPP_MODULE_FEC;
+	if (ispp_dev->ispp_ver == ISPP_V10) {
+		/* params links */
+		source = &ispp_dev->params_vdev[PARAM_VDEV_TNR].vnode.vdev.entity;
+		ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags);
+		if (ret < 0)
+			return ret;
+		source = &ispp_dev->params_vdev[PARAM_VDEV_NR].vnode.vdev.entity;
+		ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags);
+		if (ret < 0)
+			return ret;
 
-	/* stats links */
-	flags = MEDIA_LNK_FL_ENABLED;
-	source = &ispp_dev->ispp_sdev.sd.entity;
-	sink = &ispp_dev->stats_vdev[STATS_VDEV_TNR].vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS,
-				    sink, 0, flags);
-	if (ret < 0)
-		return ret;
+		/* stats links */
+		source = &ispp_dev->ispp_sdev.sd.entity;
+		sink = &ispp_dev->stats_vdev[STATS_VDEV_TNR].vnode.vdev.entity;
+		ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, sink, 0, flags);
+		if (ret < 0)
+			return ret;
+		sink = &ispp_dev->stats_vdev[STATS_VDEV_NR].vnode.vdev.entity;
+		ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, sink, 0, flags);
+		if (ret < 0)
+			return ret;
 
-	flags = MEDIA_LNK_FL_ENABLED;
-	source = &ispp_dev->ispp_sdev.sd.entity;
-	sink = &ispp_dev->stats_vdev[STATS_VDEV_NR].vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS,
-				    sink, 0, flags);
-	if (ret < 0)
-		return ret;
+		/* output stream links */
+		stream = &stream_vdev->stream[STREAM_S0];
+		stream->linked = flags;
+		sink = &stream->vnode.vdev.entity;
+		ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
+		if (ret < 0)
+			return ret;
 
-	/* output stream links */
+		stream = &stream_vdev->stream[STREAM_S1];
+		stream->linked = flags;
+		sink = &stream->vnode.vdev.entity;
+		ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
+		if (ret < 0)
+			return ret;
+
+		stream = &stream_vdev->stream[STREAM_S2];
+		stream->linked = flags;
+		sink = &stream->vnode.vdev.entity;
+		ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
+		if (ret < 0)
+			return ret;
+
+		ispp_dev->stream_vdev.module_ens = ISPP_MODULE_NR | ISPP_MODULE_SHP;
+	}
+
 	flags = rkispp_stream_sync ? 0 : MEDIA_LNK_FL_ENABLED;
 	stream = &stream_vdev->stream[STREAM_MB];
 	stream->linked = flags;
 	source = &ispp_dev->ispp_sdev.sd.entity;
 	sink = &stream->vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
-				    sink, 0, flags);
-	if (ret < 0)
-		return ret;
-
-	stream = &stream_vdev->stream[STREAM_S0];
-	stream->linked = flags;
-	sink = &stream->vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
-				    sink, 0, flags);
-	if (ret < 0)
-		return ret;
-
-	stream = &stream_vdev->stream[STREAM_S1];
-	stream->linked = flags;
-	sink = &stream->vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
-				    sink, 0, flags);
-	if (ret < 0)
-		return ret;
-
-	stream = &stream_vdev->stream[STREAM_S2];
-	stream->linked = flags;
-	sink = &stream->vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
-				    sink, 0, flags);
+	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
 	if (ret < 0)
 		return ret;
 
 	stream = &stream_vdev->stream[STREAM_VIR];
 	stream->linked = flags;
 	sink = &stream->vnode.vdev.entity;
-	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE,
-				    sink, 0, flags);
+	ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags);
 	if (ret < 0)
 		return ret;
 
-	/* default enable */
-	ispp_dev->stream_vdev.module_ens = ISPP_MODULE_NR | ISPP_MODULE_SHP;
 	return 0;
 }
 
@@ -262,6 +247,8 @@
 static const struct of_device_id rkispp_plat_of_match[] = {
 	{
 		.compatible = "rockchip,rv1126-rkispp-vir",
+	}, {
+		.compatible = "rockchip,rk3588-rkispp-vir",
 	},
 	{},
 };
@@ -408,3 +395,4 @@
 MODULE_AUTHOR("Rockchip Camera/ISP team");
 MODULE_DESCRIPTION("Rockchip ISPP platform driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

--
Gitblit v1.6.2