#ifndef IPU6_ISYS_H
#define IPU6_ISYS_H
#include <linux/irqreturn.h>
#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/pm_qos.h>
#include <linux/spinlock_types.h>
#include <linux/types.h>
#include <media/media-device.h>
#include <media/v4l2-async.h>
#include <media/v4l2-device.h>
#include "ipu6.h"
#include "ipu6-fw-isys.h"
#include "ipu6-isys-csi2.h"
#include "ipu6-isys-video.h"
struct ipu6_bus_device;
#define IPU6_ISYS_ENTITY_PREFIX …
#define IPU6_ISYS_MAX_STREAMS …
#define ISYS_UNISPART_IRQS …
#define IPU6_ISYS_2600_MEM_LINE_ALIGN …
#define IPU6_ISYS_SIZE_RECV_QUEUE …
#define IPU6_ISYS_SIZE_SEND_QUEUE …
#define IPU6_ISYS_SIZE_PROXY_RECV_QUEUE …
#define IPU6_ISYS_SIZE_PROXY_SEND_QUEUE …
#define IPU6_ISYS_NUM_RECV_QUEUE …
#define IPU6_ISYS_MIN_WIDTH …
#define IPU6_ISYS_MIN_HEIGHT …
#define IPU6_ISYS_MAX_WIDTH …
#define IPU6_ISYS_MAX_HEIGHT …
#define IPU6_SRAM_GRANULARITY_SHIFT …
#define IPU6_SRAM_GRANULARITY_SIZE …
#define IPU6SE_SRAM_GRANULARITY_SHIFT …
#define IPU6SE_SRAM_GRANULARITY_SIZE …
#define IPU6_MAX_SRAM_SIZE …
#define IPU6SE_MAX_SRAM_SIZE …
#define IPU6EP_LTR_VALUE …
#define IPU6EP_MIN_MEMOPEN_TH …
#define IPU6EP_MTL_LTR_VALUE …
#define IPU6EP_MTL_MIN_MEMOPEN_TH …
struct ltr_did { … };
struct isys_iwake_watermark { … };
struct ipu6_isys_csi2_config { … };
struct sensor_async_sd { … };
struct ipu6_isys { … };
struct isys_fw_msgs { … };
struct isys_fw_msgs *ipu6_get_fw_msg_buf(struct ipu6_isys_stream *stream);
void ipu6_put_fw_msg_buf(struct ipu6_isys *isys, u64 data);
void ipu6_cleanup_fw_msg_bufs(struct ipu6_isys *isys);
extern const struct v4l2_ioctl_ops ipu6_isys_ioctl_ops;
void isys_setup_hw(struct ipu6_isys *isys);
irqreturn_t isys_isr(struct ipu6_bus_device *adev);
void update_watermark_setting(struct ipu6_isys *isys);
int ipu6_isys_mcd_phy_set_power(struct ipu6_isys *isys,
struct ipu6_isys_csi2_config *cfg,
const struct ipu6_isys_csi2_timing *timing,
bool on);
int ipu6_isys_dwc_phy_set_power(struct ipu6_isys *isys,
struct ipu6_isys_csi2_config *cfg,
const struct ipu6_isys_csi2_timing *timing,
bool on);
int ipu6_isys_jsl_phy_set_power(struct ipu6_isys *isys,
struct ipu6_isys_csi2_config *cfg,
const struct ipu6_isys_csi2_timing *timing,
bool on);
#endif