• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. */
3 
4 #ifndef _RKISPP_ISPP_H
5 #define _RKISPP_ISPP_H
6 
7 #include "common.h"
8 
9 #define GRP_ID_ISPP		BIT(0)
10 
11 enum rkispp_pad {
12 	RKISPP_PAD_SINK,
13 	RKISPP_PAD_SINK_PARAMS,
14 	RKISPP_PAD_SOURCE,
15 	RKISPP_PAD_SOURCE_STATS,
16 	RKISPP_PAD_MAX
17 };
18 
19 enum rkispp_state {
20 	ISPP_STOP = 0,
21 	ISPP_START,
22 };
23 
24 struct isppsd_fmt {
25 	u32 mbus_code;
26 	u32 fourcc;
27 	u32 width;
28 	u32 height;
29 	u8 wr_fmt;
30 };
31 
32 struct rkispp_subdev {
33 	struct rkispp_device *dev;
34 	struct v4l2_subdev sd;
35 	struct v4l2_subdev *remote_sd;
36 	struct media_pad pads[RKISPP_PAD_MAX];
37 	struct v4l2_mbus_framefmt in_fmt;
38 	struct isppsd_fmt out_fmt;
39 	u32 frm_sync_seq;
40 	/* timestamp in ns */
41 	u64 frame_timestamp;
42 	enum rkispp_state state;
43 };
44 
45 u32 cal_fec_mesh(u32 width, u32 height, u32 mode);
46 
47 int rkispp_register_subdev(struct rkispp_device *dev,
48 			   struct v4l2_device *v4l2_dev);
49 void rkispp_unregister_subdev(struct rkispp_device *dev);
50 #endif
51