forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 95099d4622f8cb224d94e314c7a8e0df60b13f87
kernel/drivers/media/platform/rockchip/isp/hw.h
....@@ -6,7 +6,7 @@
66
77 #include "bridge.h"
88
9
-#define RKISP_MAX_BUS_CLK 8
9
+#define RKISP_MAX_BUS_CLK 10
1010 #define RKISP_MAX_RETRY_CNT 5
1111
1212 struct isp_clk_info {
....@@ -22,6 +22,7 @@
2222 int num_clk_rate_tbl;
2323 struct isp_irqs_data *irqs;
2424 int num_irqs;
25
+ bool unite;
2526 };
2627
2728 struct rkisp_monitor {
....@@ -34,12 +35,26 @@
3435 bool is_en;
3536 };
3637
38
+struct rkisp_sram {
39
+ dma_addr_t dma_addr;
40
+ u32 size;
41
+};
42
+
43
+struct rkisp_size_info {
44
+ u32 w;
45
+ u32 h;
46
+ u32 size;
47
+ u32 fps;
48
+ bool is_on;
49
+};
50
+
3751 struct rkisp_hw_dev {
3852 const struct isp_match_data *match_data;
3953 struct platform_device *pdev;
4054 struct device *dev;
4155 struct regmap *grf;
4256 void __iomem *base_addr;
57
+ void __iomem *base_next_addr;
4358 struct clk *clks[RKISP_MAX_BUS_CLK];
4459 int num_clks;
4560 const struct isp_clk_info *clk_rate_tbl;
....@@ -48,14 +63,19 @@
4863 int mipi_irq;
4964 enum rkisp_isp_ver isp_ver;
5065 struct rkisp_device *isp[DEV_MAX];
66
+ struct rkisp_size_info isp_size[DEV_MAX];
5167 int dev_num;
68
+ int dev_link_num;
5269 int cur_dev_id;
70
+ int pre_dev_id;
5371 int mipi_dev_id;
5472 struct max_input max_in;
5573 /* lock for multi dev */
5674 struct mutex dev_lock;
5775 spinlock_t rdbk_lock;
5876 atomic_t refcnt;
77
+
78
+ struct rkisp_sram sram;
5979
6080 /* share buf for multi dev */
6181 spinlock_t buf_lock;
....@@ -79,9 +99,14 @@
7999 bool is_thunderboot;
80100 bool is_buf_init;
81101 bool is_shutdown;
82
- atomic_t tb_ref;
102
+ bool is_unite;
103
+ bool is_multi_overflow;
104
+ bool is_runing;
105
+ bool is_frm_buf;
106
+ bool is_dvfs;
83107 };
84108
85109 int rkisp_register_irq(struct rkisp_hw_dev *dev);
86110 void rkisp_soft_reset(struct rkisp_hw_dev *dev, bool is_secure);
111
+void rkisp_hw_enum_isp_size(struct rkisp_hw_dev *hw_dev);
87112 #endif