hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/media/platform/rockchip/isp/common.h
....@@ -38,7 +38,9 @@
3838 #include <linux/clk.h>
3939 #include <linux/media.h>
4040 #include <linux/mutex.h>
41
+#include <linux/rk-video-format.h>
4142 #include <linux/slab.h>
43
+#include <linux/soc/rockchip/rk_sdmmc.h>
4244 #include <media/media-device.h>
4345 #include <media/media-entity.h>
4446 #include <media/v4l2-ctrls.h>
....@@ -49,14 +51,6 @@
4951
5052 #define RKISP_DEFAULT_WIDTH 800
5153 #define RKISP_DEFAULT_HEIGHT 600
52
-
53
-#define RKISP_MAX_STREAM 6
54
-#define RKISP_STREAM_MP 0
55
-#define RKISP_STREAM_SP 1
56
-#define RKISP_STREAM_DMATX0 2
57
-#define RKISP_STREAM_DMATX1 3
58
-#define RKISP_STREAM_DMATX2 4
59
-#define RKISP_STREAM_DMATX3 5
6054
6155 #define RKISP_PLANE_Y 0
6256 #define RKISP_PLANE_CB 1
....@@ -78,6 +72,9 @@
7872 ISP_V13 = 0x30,
7973 ISP_V20 = 0x40,
8074 ISP_V21 = 0x50,
75
+ ISP_V30 = 0x60,
76
+ ISP_V32 = 0x70,
77
+ ISP_V32_L = 0x80,
8178 };
8279
8380 enum rkisp_sd_type {
....@@ -103,6 +100,7 @@
103100 FMT_FBCGAIN,
104101 FMT_EBD,
105102 FMT_SPD,
103
+ FMT_FBC,
106104 FMT_MAX
107105 };
108106
....@@ -116,11 +114,10 @@
116114 struct rkisp_buffer {
117115 struct vb2_v4l2_buffer vb;
118116 struct list_head queue;
117
+ void *vaddr[VIDEO_MAX_PLANES];
118
+ u32 buff_addr[VIDEO_MAX_PLANES];
119119 int dev_id;
120
- union {
121
- u32 buff_addr[VIDEO_MAX_PLANES];
122
- void *vaddr[VIDEO_MAX_PLANES];
123
- };
120
+ void *other;
124121 };
125122
126123 struct rkisp_dummy_buffer {
....@@ -139,6 +136,7 @@
139136
140137 extern int rkisp_debug;
141138 extern bool rkisp_monitor;
139
+extern bool rkisp_irq_dbg;
142140 extern u64 rkisp_debug_reg;
143141 extern struct platform_driver rkisp_plat_drv;
144142
....@@ -167,9 +165,25 @@
167165
168166 void rkisp_write(struct rkisp_device *dev, u32 reg, u32 val, bool is_direct);
169167 u32 rkisp_read(struct rkisp_device *dev, u32 reg, bool is_direct);
170
-u32 rkisp_read_reg_cache(struct rkisp_device *dev, u32 reg);
171168 void rkisp_set_bits(struct rkisp_device *dev, u32 reg, u32 mask, u32 val, bool is_direct);
172169 void rkisp_clear_bits(struct rkisp_device *dev, u32 reg, u32 mask, bool is_direct);
170
+
171
+void rkisp_write_reg_cache(struct rkisp_device *dev, u32 reg, u32 val);
172
+u32 rkisp_read_reg_cache(struct rkisp_device *dev, u32 reg);
173
+void rkisp_set_reg_cache_bits(struct rkisp_device *dev, u32 reg, u32 mask, u32 val);
174
+void rkisp_clear_reg_cache_bits(struct rkisp_device *dev, u32 reg, u32 mask);
175
+
176
+/* for dual isp, config for next isp reg */
177
+void rkisp_next_write(struct rkisp_device *dev, u32 reg, u32 val, bool is_direct);
178
+u32 rkisp_next_read(struct rkisp_device *dev, u32 reg, bool is_direct);
179
+void rkisp_next_set_bits(struct rkisp_device *dev, u32 reg, u32 mask, u32 val, bool is_direct);
180
+void rkisp_next_clear_bits(struct rkisp_device *dev, u32 reg, u32 mask, bool is_direct);
181
+
182
+void rkisp_next_write_reg_cache(struct rkisp_device *dev, u32 reg, u32 val);
183
+u32 rkisp_next_read_reg_cache(struct rkisp_device *dev, u32 reg);
184
+void rkisp_next_set_reg_cache_bits(struct rkisp_device *dev, u32 reg, u32 mask, u32 val);
185
+void rkisp_next_clear_reg_cache_bits(struct rkisp_device *dev, u32 reg, u32 mask);
186
+
173187 void rkisp_update_regs(struct rkisp_device *dev, u32 start, u32 end);
174188
175189 int rkisp_alloc_buffer(struct rkisp_device *dev, struct rkisp_dummy_buffer *buf);