#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/slab.h>
#include <linux/iopoll.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include "adf_accel_devices.h"
#include "adf_admin.h"
#include "adf_common_drv.h"
#include "adf_cfg.h"
#include "adf_heartbeat.h"
#include "icp_qat_fw_init_admin.h"
#define ADF_ADMIN_MAILBOX_STRIDE …
#define ADF_ADMINMSG_LEN …
#define ADF_CONST_TABLE_SIZE …
#define ADF_ADMIN_POLL_DELAY_US …
#define ADF_ADMIN_POLL_TIMEOUT_US …
#define ADF_ONE_AE …
static const u8 const_tab[1024] __aligned(1024) = …;
struct adf_admin_comms { … };
static int adf_put_admin_msg_sync(struct adf_accel_dev *accel_dev, u32 ae,
void *in, void *out)
{ … }
static int adf_send_admin(struct adf_accel_dev *accel_dev,
struct icp_qat_fw_init_admin_req *req,
struct icp_qat_fw_init_admin_resp *resp,
const unsigned long ae_mask)
{ … }
static int adf_init_ae(struct adf_accel_dev *accel_dev)
{ … }
static int adf_set_fw_constants(struct adf_accel_dev *accel_dev)
{ … }
int adf_get_fw_timestamp(struct adf_accel_dev *accel_dev, u64 *timestamp)
{ … }
static int adf_set_chaining(struct adf_accel_dev *accel_dev)
{ … }
static int adf_get_dc_capabilities(struct adf_accel_dev *accel_dev,
u32 *capabilities)
{ … }
int adf_get_ae_fw_counters(struct adf_accel_dev *accel_dev, u16 ae, u64 *reqs, u64 *resps)
{ … }
int adf_send_admin_tim_sync(struct adf_accel_dev *accel_dev, u32 cnt)
{ … }
int adf_send_admin_hb_timer(struct adf_accel_dev *accel_dev, uint32_t ticks)
{ … }
static bool is_dcc_enabled(struct adf_accel_dev *accel_dev)
{ … }
static int adf_get_fw_capabilities(struct adf_accel_dev *accel_dev, u16 *caps)
{ … }
int adf_send_admin_rl_init(struct adf_accel_dev *accel_dev,
struct icp_qat_fw_init_admin_slice_cnt *slices)
{ … }
int adf_send_admin_rl_add_update(struct adf_accel_dev *accel_dev,
struct icp_qat_fw_init_admin_req *req)
{ … }
int adf_send_admin_rl_delete(struct adf_accel_dev *accel_dev, u16 node_id,
u8 node_type)
{ … }
int adf_send_admin_init(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int adf_init_admin_pm(struct adf_accel_dev *accel_dev, u32 idle_delay)
{ … }
int adf_get_pm_info(struct adf_accel_dev *accel_dev, dma_addr_t p_state_addr,
size_t buff_size)
{ … }
int adf_get_cnv_stats(struct adf_accel_dev *accel_dev, u16 ae, u16 *err_cnt,
u16 *latest_err)
{ … }
int adf_send_admin_tl_start(struct adf_accel_dev *accel_dev,
dma_addr_t tl_dma_addr, size_t layout_sz, u8 *rp_indexes,
struct icp_qat_fw_init_admin_slice_cnt *slice_count)
{ … }
int adf_send_admin_tl_stop(struct adf_accel_dev *accel_dev)
{ … }
int adf_init_admin_comms(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void adf_exit_admin_comms(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);