From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 03 Jan 2024 09:43:39 +0000
Subject: [PATCH] update kernel to 5.10.198

---
 kernel/drivers/media/platform/rockchip/isp/dev.h |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/kernel/drivers/media/platform/rockchip/isp/dev.h b/kernel/drivers/media/platform/rockchip/isp/dev.h
index 0b73b4f..3e65864 100644
--- a/kernel/drivers/media/platform/rockchip/isp/dev.h
+++ b/kernel/drivers/media/platform/rockchip/isp/dev.h
@@ -81,6 +81,7 @@
 	ISP_START = BIT(9),
 	ISP_ERROR = BIT(10),
 	ISP_MIPI_ERROR = BIT(11),
+	ISP_CIF_RESET = BIT(12),
 };
 
 enum rkisp_isp_inp {
@@ -101,6 +102,25 @@
 	RDBK_F_RD1,
 	RDBK_F_RD2,
 	RDBK_F_MAX
+};
+
+/* unite mode for isp to process high resolution
+ * ISP_UNITE_TWO: image splits left and right to two isp hardware
+ * ISP_UNITE_ONE: image splits left and right to single isp hardware
+ */
+enum {
+	ISP_UNITE_NONE = 0,
+	ISP_UNITE_TWO = 1,
+	ISP_UNITE_ONE = 2,
+};
+
+/* left and right index
+ * ISP_UNITE_LEFT: left of image to isp process
+ * ISP_UNITE_RIGHT: right of image to isp process
+ */
+enum {
+	ISP_UNITE_LEFT = 0,
+	ISP_UNITE_RIGHT = 1,
 };
 
 /*
@@ -216,6 +236,10 @@
 	size_t resmem_size;
 	struct rkisp_thunderboot_resmem_head tb_head;
 	bool is_thunderboot;
+	/* first frame for rtt */
+	bool is_rtt_first;
+	/* suspend/resume with rtt */
+	bool is_rtt_suspend;
 	struct rkisp_tb_stream_info tb_stream_info;
 	unsigned int tb_addr_idx;
 
@@ -226,6 +250,8 @@
 	bool send_fbcgain;
 	struct rkisp_ispp_buf *cur_fbcgain;
 	struct rkisp_buffer *cur_spbuf;
+
+	struct completion pm_cmpl;
 
 	struct work_struct rdbk_work;
 	struct kfifo rdbk_kfifo;
@@ -249,11 +275,47 @@
 	bool is_pre_on;
 	bool is_first_double;
 	bool is_probe_end;
+	bool is_frame_double;
+	bool is_suspend;
+	bool suspend_sync;
+	bool is_suspend_one_frame;
 
 	struct rkisp_vicap_input vicap_in;
 
 	u8 multi_mode;
 	u8 multi_index;
 	u8 rawaf_irq_cnt;
+	u8 unite_index;
 };
+
+static inline void
+rkisp_unite_write(struct rkisp_device *dev, u32 reg, u32 val, bool is_direct)
+{
+	rkisp_write(dev, reg, val, is_direct);
+	if (dev->hw_dev->unite)
+		rkisp_next_write(dev, reg, val, is_direct);
+}
+
+static inline void
+rkisp_unite_set_bits(struct rkisp_device *dev, u32 reg, u32 mask,
+		     u32 val, bool is_direct)
+{
+	rkisp_set_bits(dev, reg, mask, val, is_direct);
+	if (dev->hw_dev->unite)
+		rkisp_next_set_bits(dev, reg, mask, val, is_direct);
+}
+
+static inline void
+rkisp_unite_clear_bits(struct rkisp_device *dev, u32 reg, u32 mask,
+		       bool is_direct)
+{
+	rkisp_clear_bits(dev, reg, mask, is_direct);
+	if (dev->hw_dev->unite)
+		rkisp_next_clear_bits(dev, reg, mask, is_direct);
+}
+
+static inline bool rkisp_link_sensor(u32 isp_inp)
+{
+	return isp_inp & (INP_CSI | INP_DVP | INP_LVDS);
+}
 #endif

--
Gitblit v1.6.2