xref: /linux/drivers/staging/media/ipu7/ipu7-fw-isys.h (revision 8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2013 - 2025 Intel Corporation
4  */
5 
6 #ifndef IPU7_FW_ISYS_H
7 #define IPU7_FW_ISYS_H
8 
9 #include <linux/types.h>
10 
11 #include "abi/ipu7_fw_isys_abi.h"
12 
13 struct device;
14 struct ipu7_insys_buffset;
15 struct ipu7_insys_stream_cfg;
16 struct ipu7_isys;
17 
18 /* From here on type defines not coming from the ISYSAPI interface */
19 
20 int ipu7_fw_isys_init(struct ipu7_isys *isys);
21 void ipu7_fw_isys_release(struct ipu7_isys *isys);
22 int ipu7_fw_isys_open(struct ipu7_isys *isys);
23 int ipu7_fw_isys_close(struct ipu7_isys *isys);
24 
25 void ipu7_fw_isys_dump_stream_cfg(struct device *dev,
26 				  struct ipu7_insys_stream_cfg *cfg);
27 void ipu7_fw_isys_dump_frame_buff_set(struct device *dev,
28 				      struct ipu7_insys_buffset *buf,
29 				      unsigned int outputs);
30 int ipu7_fw_isys_simple_cmd(struct ipu7_isys *isys,
31 			    const unsigned int stream_handle, u16 send_type);
32 int ipu7_fw_isys_complex_cmd(struct ipu7_isys *isys,
33 			     const unsigned int stream_handle,
34 			     void *cpu_mapped_buf,
35 			     dma_addr_t dma_mapped_buf,
36 			     size_t size, u16 send_type);
37 struct ipu7_insys_resp *ipu7_fw_isys_get_resp(struct ipu7_isys *isys);
38 void ipu7_fw_isys_put_resp(struct ipu7_isys *isys);
39 #endif
40