crypto: hisilicon/qm - modify event irq processing
authorWeili Qian <qianweili@huawei.com>
Thu, 9 Jun 2022 12:31:19 +0000 (20:31 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 17 Jun 2022 09:19:20 +0000 (17:19 +0800)
commitd64de9773c18409d2161228242968ff3ebe3707e
tree9f43334086c3843bdc67bc3bdb7e90058b8ad1bc
parent3099fc9c2b3aaace80947d07d13b40da2dd79fd4
crypto: hisilicon/qm - modify event irq processing

When the driver receives an event interrupt, the driver will enable
the event interrupt after handling all completed tasks on the function,
tasks on the function are parsed through only one thread. If the task's
user callback takes time, other tasks on the function will be blocked.

Therefore, the event irq processing is modified as follows:
1. Obtain the ID of the queue that completes the task.
2. Enable event interrupt.
3. Parse the completed tasks in the queue and call the user callback.
Enabling event interrupt in advance can quickly report pending event
interrupts and process tasks in multiple threads.

Signed-off-by: Weili Qian <qianweili@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/qm.c
include/linux/hisi_acc_qm.h