#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/io.h>
#include <linux/math.h>
#include <linux/overflow.h>
#include <linux/slab.h>
#include <linux/types.h>
#include "ipu6-bus.h"
#include "ipu6-fw-com.h"
struct ipu6_fw_sys_queue { … } __packed;
struct ipu6_fw_sys_queue_res { … } __packed;
enum syscom_state { … };
enum syscom_cmd { … };
struct ipu6_fw_syscom_config { … };
struct ipu6_fw_com_context { … };
#define FW_COM_WR_REG …
#define FW_COM_RD_REG …
#define REGMEM_OFFSET …
#define TUNIT_MAGIC_PATTERN …
enum regmem_id { … };
#define BUTTRESS_FW_BOOT_PARAMS_0 …
#define BUTTRESS_FW_BOOT_PARAM_REG(base, offset, id) …
enum buttress_syscom_id { … };
static void ipu6_sys_queue_init(struct ipu6_fw_sys_queue *q, unsigned int size,
unsigned int token_size,
struct ipu6_fw_sys_queue_res *res)
{ … }
void *ipu6_fw_com_prepare(struct ipu6_fw_com_cfg *cfg,
struct ipu6_bus_device *adev, void __iomem *base)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int ipu6_fw_com_open(struct ipu6_fw_com_context *ctx)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int ipu6_fw_com_close(struct ipu6_fw_com_context *ctx)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int ipu6_fw_com_release(struct ipu6_fw_com_context *ctx, unsigned int force)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
bool ipu6_fw_com_ready(struct ipu6_fw_com_context *ctx)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void *ipu6_send_get_token(struct ipu6_fw_com_context *ctx, int q_nbr)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void ipu6_send_put_token(struct ipu6_fw_com_context *ctx, int q_nbr)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void *ipu6_recv_get_token(struct ipu6_fw_com_context *ctx, int q_nbr)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void ipu6_recv_put_token(struct ipu6_fw_com_context *ctx, int q_nbr)
{ … }
EXPORT_SYMBOL_NS_GPL(…);