summaryrefslogtreecommitdiff
path: root/drivers/crypto/intel/qat/qat_common/adf_admin.h
diff options
context:
space:
mode:
authorLucas Segarra Fernandez <lucas.segarra.fernandez@intel.com>2023-12-22 13:35:06 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2023-12-29 06:25:55 +0300
commit7f06679dd54a331d750e5d6f6f04a9df2eba72ff (patch)
treec025e222558d5fa97812dbc74851f8c9e24af8b0 /drivers/crypto/intel/qat/qat_common/adf_admin.h
parentb6e4b6eb1e6393580482581470a3a08c15ab977b (diff)
downloadlinux-7f06679dd54a331d750e5d6f6f04a9df2eba72ff.tar.xz
crypto: qat - add admin msgs for telemetry
Extend the admin interface with two new public APIs to enable and disable the telemetry feature: adf_send_admin_tl_start() and adf_send_admin_tl_stop(). The first, sends to the firmware, through the ICP_QAT_FW_TL_START message, the IO address where the firmware will write telemetry metrics and a list of ring pairs (maximum 4) to be monitored. It returns the number of accelerators of each type supported by this hardware. After this message is sent, the firmware starts periodically reporting telemetry data using by writing into the dma buffer specified as input. The second, sends the admin message ICP_QAT_FW_TL_STOP which stops the reporting of telemetry data. This patch is based on earlier work done by Wojciech Ziemba. Signed-off-by: Lucas Segarra Fernandez <lucas.segarra.fernandez@intel.com> Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Reviewed-by: Damian Muszynski <damian.muszynski@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/intel/qat/qat_common/adf_admin.h')
-rw-r--r--drivers/crypto/intel/qat/qat_common/adf_admin.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/crypto/intel/qat/qat_common/adf_admin.h b/drivers/crypto/intel/qat/qat_common/adf_admin.h
index 55cbcbc66c9f..647c8e196752 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_admin.h
+++ b/drivers/crypto/intel/qat/qat_common/adf_admin.h
@@ -23,5 +23,9 @@ int adf_send_admin_rl_delete(struct adf_accel_dev *accel_dev, u16 node_id,
int adf_get_fw_timestamp(struct adf_accel_dev *accel_dev, u64 *timestamp);
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);
#endif