#include <linux/cacheflush.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/io.h>
#include <linux/spinlock.h>
#include <linux/types.h>
#include "ipu6-bus.h"
#include "ipu6-fw-com.h"
#include "ipu6-isys.h"
#include "ipu6-platform-isys-csi2-reg.h"
#include "ipu6-platform-regs.h"
static const char send_msg_types[N_IPU6_FW_ISYS_SEND_TYPE][32] = …;
static int handle_proxy_response(struct ipu6_isys *isys, unsigned int req_id)
{ … }
int ipu6_fw_isys_send_proxy_token(struct ipu6_isys *isys,
unsigned int req_id,
unsigned int index,
unsigned int offset, u32 value)
{ … }
int ipu6_fw_isys_complex_cmd(struct ipu6_isys *isys,
const unsigned int stream_handle,
void *cpu_mapped_buf,
dma_addr_t dma_mapped_buf,
size_t size, u16 send_type)
{ … }
int ipu6_fw_isys_simple_cmd(struct ipu6_isys *isys,
const unsigned int stream_handle, u16 send_type)
{ … }
int ipu6_fw_isys_close(struct ipu6_isys *isys)
{ … }
void ipu6_fw_isys_cleanup(struct ipu6_isys *isys)
{ … }
static void start_sp(struct ipu6_bus_device *adev)
{ … }
static int query_sp(struct ipu6_bus_device *adev)
{ … }
static int ipu6_isys_fwcom_cfg_init(struct ipu6_isys *isys,
struct ipu6_fw_com_cfg *fwcom,
unsigned int num_streams)
{ … }
int ipu6_fw_isys_init(struct ipu6_isys *isys, unsigned int num_streams)
{ … }
struct ipu6_fw_isys_resp_info_abi *
ipu6_fw_isys_get_resp(void *context, unsigned int queue)
{ … }
void ipu6_fw_isys_put_resp(void *context, unsigned int queue)
{ … }
void ipu6_fw_isys_dump_stream_cfg(struct device *dev,
struct ipu6_fw_isys_stream_cfg_data_abi *cfg)
{ … }
void
ipu6_fw_isys_dump_frame_buff_set(struct device *dev,
struct ipu6_fw_isys_frame_buff_set_abi *buf,
unsigned int outputs)
{ … }