hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/media/platform/rockchip/isp/dev.h
....@@ -103,6 +103,25 @@
103103 RDBK_F_MAX
104104 };
105105
106
+/* unite mode for isp to process high resolution
107
+ * ISP_UNITE_TWO: image splits left and right to two isp hardware
108
+ * ISP_UNITE_ONE: image splits left and right to single isp hardware
109
+ */
110
+enum {
111
+ ISP_UNITE_NONE = 0,
112
+ ISP_UNITE_TWO = 1,
113
+ ISP_UNITE_ONE = 2,
114
+};
115
+
116
+/* left and right index
117
+ * ISP_UNITE_LEFT: left of image to isp process
118
+ * ISP_UNITE_RIGHT: right of image to isp process
119
+ */
120
+enum {
121
+ ISP_UNITE_LEFT = 0,
122
+ ISP_UNITE_RIGHT = 1,
123
+};
124
+
106125 /*
107126 * struct rkisp_pipeline - An ISP hardware pipeline
108127 *
....@@ -249,11 +268,40 @@
249268 bool is_pre_on;
250269 bool is_first_double;
251270 bool is_probe_end;
271
+ bool is_frame_double;
252272
253273 struct rkisp_vicap_input vicap_in;
254274
255275 u8 multi_mode;
256276 u8 multi_index;
257277 u8 rawaf_irq_cnt;
278
+ u8 unite_index;
258279 };
280
+
281
+static inline void
282
+rkisp_unite_write(struct rkisp_device *dev, u32 reg, u32 val, bool is_direct)
283
+{
284
+ rkisp_write(dev, reg, val, is_direct);
285
+ if (dev->hw_dev->unite)
286
+ rkisp_next_write(dev, reg, val, is_direct);
287
+}
288
+
289
+static inline void
290
+rkisp_unite_set_bits(struct rkisp_device *dev, u32 reg, u32 mask,
291
+ u32 val, bool is_direct)
292
+{
293
+ rkisp_set_bits(dev, reg, mask, val, is_direct);
294
+ if (dev->hw_dev->unite)
295
+ rkisp_next_set_bits(dev, reg, mask, val, is_direct);
296
+}
297
+
298
+static inline void
299
+rkisp_unite_clear_bits(struct rkisp_device *dev, u32 reg, u32 mask,
300
+ bool is_direct)
301
+{
302
+ rkisp_clear_bits(dev, reg, mask, is_direct);
303
+ if (dev->hw_dev->unite)
304
+ rkisp_next_clear_bits(dev, reg, mask, is_direct);
305
+}
306
+
259307 #endif