crypto: qat - add delay before polling mailbox
The mailbox CSR register has a write latency and requires a delay before being read. This patch replaces readl_poll_timeout with read_poll_timeout that allows to sleep before read. The initial sleep was removed when the mailbox poll loop was replaced with readl_poll_timeout. Fixes: a79d471c6510 ("crypto: qat - update timeout logic in put admin msg") Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
9123e3a74e
commit
9a5a668dc3
@ -131,9 +131,10 @@ static int adf_put_admin_msg_sync(struct adf_accel_dev *accel_dev, u32 ae,
|
|||||||
memcpy(admin->virt_addr + offset, in, ADF_ADMINMSG_LEN);
|
memcpy(admin->virt_addr + offset, in, ADF_ADMINMSG_LEN);
|
||||||
ADF_CSR_WR(mailbox, mb_offset, 1);
|
ADF_CSR_WR(mailbox, mb_offset, 1);
|
||||||
|
|
||||||
ret = readl_poll_timeout(mailbox + mb_offset, status,
|
ret = read_poll_timeout(ADF_CSR_RD, status, status == 0,
|
||||||
status == 0, ADF_ADMIN_POLL_DELAY_US,
|
ADF_ADMIN_POLL_DELAY_US,
|
||||||
ADF_ADMIN_POLL_TIMEOUT_US);
|
ADF_ADMIN_POLL_TIMEOUT_US, true,
|
||||||
|
mailbox, mb_offset);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
/* Response timeout */
|
/* Response timeout */
|
||||||
dev_err(&GET_DEV(accel_dev),
|
dev_err(&GET_DEV(accel_dev),
|
||||||
|
Reference in New Issue
Block a user