forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
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,16 +22,29 @@
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 {
2829 struct rkisp_hw_dev *dev;
2930 struct work_struct work;
3031 struct completion cmpl;
31
- int (*reset_handle)(struct rkisp_device *dev);
3232 u32 state;
3333 u8 retry;
3434 bool is_en;
35
+};
36
+
37
+struct rkisp_sram {
38
+ dma_addr_t dma_addr;
39
+ u32 size;
40
+};
41
+
42
+struct rkisp_size_info {
43
+ u32 w;
44
+ u32 h;
45
+ u32 size;
46
+ u32 fps;
47
+ bool is_on;
3548 };
3649
3750 struct rkisp_hw_dev {
....@@ -39,7 +52,9 @@
3952 struct platform_device *pdev;
4053 struct device *dev;
4154 struct regmap *grf;
55
+ void *sw_reg;
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;
....@@ -69,6 +89,7 @@
6989 struct rkisp_monitor monitor;
7090 u64 iq_feature;
7191 int buf_init_cnt;
92
+ u32 unite;
7293 bool is_feature_on;
7394 bool is_dma_contig;
7495 bool is_dma_sg_ops;
....@@ -79,9 +100,16 @@
79100 bool is_thunderboot;
80101 bool is_buf_init;
81102 bool is_shutdown;
82
- atomic_t tb_ref;
103
+ bool is_multi_overflow;
104
+ bool is_runing;
105
+ bool is_frm_buf;
106
+ bool is_dvfs;
107
+ bool is_assigned_clk;
83108 };
84109
85110 int rkisp_register_irq(struct rkisp_hw_dev *dev);
86111 void rkisp_soft_reset(struct rkisp_hw_dev *dev, bool is_secure);
112
+void rkisp_hw_enum_isp_size(struct rkisp_hw_dev *hw_dev);
113
+void rkisp_hw_reg_save(struct rkisp_hw_dev *dev);
114
+void rkisp_hw_reg_restore(struct rkisp_hw_dev *dev);
87115 #endif