#ifndef ADF_HEARTBEAT_H_
#define ADF_HEARTBEAT_H_
#include <linux/types.h>
struct adf_accel_dev;
struct dentry;
#define ADF_CFG_HB_TIMER_MIN_MS …
#define ADF_CFG_HB_TIMER_DEFAULT_MS …
#define ADF_CFG_HB_COUNT_THRESHOLD …
#define ADF_CFG_HB_RESET_MS …
enum adf_device_heartbeat_status { … };
struct hb_cnt_pair { … };
struct adf_heartbeat { … };
#ifdef CONFIG_DEBUG_FS
int adf_heartbeat_init(struct adf_accel_dev *accel_dev);
int adf_heartbeat_start(struct adf_accel_dev *accel_dev);
void adf_heartbeat_shutdown(struct adf_accel_dev *accel_dev);
int adf_heartbeat_ms_to_ticks(struct adf_accel_dev *accel_dev, unsigned int time_ms,
uint32_t *value);
int adf_heartbeat_save_cfg_param(struct adf_accel_dev *accel_dev,
unsigned int timer_ms);
void adf_heartbeat_status(struct adf_accel_dev *accel_dev,
enum adf_device_heartbeat_status *hb_status);
void adf_heartbeat_check_ctrs(struct adf_accel_dev *accel_dev);
#ifdef CONFIG_CRYPTO_DEV_QAT_ERROR_INJECTION
int adf_heartbeat_inject_error(struct adf_accel_dev *accel_dev);
#else
static inline int adf_heartbeat_inject_error(struct adf_accel_dev *accel_dev)
{
return -EPERM;
}
#endif
#else
static inline int adf_heartbeat_init(struct adf_accel_dev *accel_dev)
{
return 0;
}
static inline int adf_heartbeat_start(struct adf_accel_dev *accel_dev)
{
return 0;
}
static inline void adf_heartbeat_shutdown(struct adf_accel_dev *accel_dev)
{
}
static inline int adf_heartbeat_save_cfg_param(struct adf_accel_dev *accel_dev,
unsigned int timer_ms)
{
return 0;
}
static inline void adf_heartbeat_check_ctrs(struct adf_accel_dev *accel_dev)
{
}
#endif
#endif