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/stats.c |   35 ++++++++++++++++-------------------
 1 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/kernel/drivers/media/platform/rockchip/ispp/stats.c b/kernel/drivers/media/platform/rockchip/ispp/stats.c
index 6ce870e..94e14de 100644
--- a/kernel/drivers/media/platform/rockchip/ispp/stats.c
+++ b/kernel/drivers/media/platform/rockchip/ispp/stats.c
@@ -9,6 +9,7 @@
 #include <media/videobuf2-dma-contig.h>
 #include <media/videobuf2-dma-sg.h>
 #include <media/v4l2-mc.h>
+#include <uapi/linux/rk-video-format.h>
 #include "dev.h"
 #include "regs.h"
 #include "stats.h"
@@ -74,11 +75,11 @@
 				nrbuf->image.index = vdev->nr.cur_wr->index;
 				nrbuf->image.size = vdev->nr.cur_wr->size;
 				v4l2_dbg(3, rkispp_debug, &dev->v4l2_dev,
-					 "%s frame:%d nr output buf index:%d fd:%d dma:0x%x\n",
+					 "%s frame:%d nr output buf index:%d fd:%d dma:%pad\n",
 					 __func__, cur_frame_id,
 					 vdev->nr.cur_wr->index,
 					 vdev->nr.cur_wr->dma_fd,
-					 vdev->nr.cur_wr->dma_addr);
+					 &vdev->nr.cur_wr->dma_addr);
 			}
 		}
 
@@ -156,7 +157,7 @@
 
 	ret = v4l2_fh_open(filp);
 	if (!ret) {
-		ret = v4l2_pipeline_pm_use(&stats->vnode.vdev.entity, 1);
+		ret = v4l2_pipeline_pm_get(&stats->vnode.vdev.entity);
 		if (ret < 0) {
 			v4l2_err(&isppdev->v4l2_dev,
 				 "pipeline power on failed %d\n", ret);
@@ -169,16 +170,11 @@
 static int rkispp_stats_fh_release(struct file *filp)
 {
 	struct rkispp_stats_vdev *stats = video_drvdata(filp);
-	struct rkispp_device *isppdev = stats->dev;
 	int ret;
 
 	ret = vb2_fop_release(filp);
-	if (!ret) {
-		ret = v4l2_pipeline_pm_use(&stats->vnode.vdev.entity, 0);
-		if (ret < 0)
-			v4l2_err(&isppdev->v4l2_dev,
-				 "pipeline power off failed %d\n", ret);
-	}
+	if (!ret)
+		v4l2_pipeline_pm_put(&stats->vnode.vdev.entity);
 	return ret;
 }
 
@@ -230,7 +226,6 @@
 		sizes[0] = sizeof(struct rkispp_stats_nrbuf);
 		break;
 	}
-
 	INIT_LIST_HEAD(&stats_vdev->stat);
 
 	return 0;
@@ -245,7 +240,7 @@
 	unsigned long lock_flags = 0;
 
 	vb2_plane_vaddr(vb, 0);
-	if (stats_dev->dev->hw_dev->is_mmu) {
+	if (stats_dev->dev->hw_dev->is_dma_sg_ops) {
 		struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
 
 		buf->buff_addr[0] = sg_dma_address(sgt->sgl);
@@ -346,9 +341,7 @@
 
 static void rkispp_init_stats_vdev(struct rkispp_stats_vdev *stats_vdev)
 {
-	stats_vdev->vdev_fmt.fmt.meta.dataformat =
-		V4L2_META_FMT_RK_ISPP_STAT;
-
+	stats_vdev->vdev_fmt.fmt.meta.dataformat = V4L2_META_FMT_RK_ISPP_STAT;
 	switch (stats_vdev->vdev_id) {
 	case STATS_VDEV_TNR:
 		stats_vdev->vdev_fmt.fmt.meta.buffersize =
@@ -363,7 +356,7 @@
 }
 
 static int rkispp_register_stats_vdev(struct rkispp_device *dev,
-	enum rkispp_statsvdev_id vdev_id)
+				      enum rkispp_statsvdev_id vdev_id)
 {
 	struct rkispp_stats_vdev *stats_vdev = &dev->stats_vdev[vdev_id];
 	struct rkispp_vdev_node *node = &stats_vdev->vnode;
@@ -402,7 +395,7 @@
 	if (ret < 0)
 		goto err_release_queue;
 
-	ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
+	ret = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
 	if (ret < 0) {
 		dev_err(&vdev->dev,
 			"could not register Video for Linux device\n");
@@ -419,7 +412,7 @@
 }
 
 static void rkispp_unregister_stats_vdev(struct rkispp_device *dev,
-	enum rkispp_statsvdev_id vdev_id)
+					 enum rkispp_statsvdev_id vdev_id)
 {
 	struct rkispp_stats_vdev *stats_vdev = &dev->stats_vdev[vdev_id];
 	struct rkispp_vdev_node *node = &stats_vdev->vnode;
@@ -433,6 +426,9 @@
 int rkispp_register_stats_vdevs(struct rkispp_device *dev)
 {
 	int ret = 0;
+
+	if (dev->ispp_ver != ISPP_V10)
+		return 0;
 
 	ret = rkispp_register_stats_vdev(dev, STATS_VDEV_TNR);
 	if (ret)
@@ -449,7 +445,8 @@
 
 void rkispp_unregister_stats_vdevs(struct rkispp_device *dev)
 {
+	if (dev->ispp_ver != ISPP_V10)
+		return;
 	rkispp_unregister_stats_vdev(dev, STATS_VDEV_TNR);
 	rkispp_unregister_stats_vdev(dev, STATS_VDEV_NR);
 }
-

--
Gitblit v1.6.2