mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
crypto: qat - add internal timer for qat 4xxx
The power management feature in QAT 4xxx devices can disable clock sources used to implement timers. Because of that, the firmware needs to get an external reliable source of time. Add a kernel delayed work that periodically sends an event to the firmware. This is triggered every 200ms. At each execution, the driver sends a sync request to the firmware reporting the current timestamp counter value. This is a pre-requisite for enabling the heartbeat, telemetry and rate limiting features. Signed-off-by: Damian Muszynski <damian.muszynski@intel.com> Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
865b50fe6e
commit
fd77d8da1f
@@ -241,6 +241,18 @@ int adf_get_ae_fw_counters(struct adf_accel_dev *accel_dev, u16 ae, u64 *reqs, u
|
||||
return 0;
|
||||
}
|
||||
|
||||
int adf_send_admin_tim_sync(struct adf_accel_dev *accel_dev, u32 cnt)
|
||||
{
|
||||
u32 ae_mask = accel_dev->hw_device->ae_mask;
|
||||
struct icp_qat_fw_init_admin_req req = { };
|
||||
struct icp_qat_fw_init_admin_resp resp = { };
|
||||
|
||||
req.cmd_id = ICP_QAT_FW_SYNC;
|
||||
req.int_timer_ticks = cnt;
|
||||
|
||||
return adf_send_admin(accel_dev, &req, &resp, ae_mask);
|
||||
}
|
||||
|
||||
/**
|
||||
* adf_send_admin_init() - Function sends init message to FW
|
||||
* @accel_dev: Pointer to acceleration device.
|
||||
|
||||
Reference in New Issue
Block a user