mirror of https://gitee.com/openkylin/linux.git
crypto: ccp - Use only the relevant interrupt bits
Each CCP queue can product interrupts for 4 conditions: operation complete, queue empty, error, and queue stopped. This driver only works with completion and error events. Cc: <stable@vger.kernel.org> # 4.9.x+ Signed-off-by: Gary R Hook <gary.hook@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
7701d1ff8e
commit
56467cb11c
|
@ -801,7 +801,7 @@ static int ccp5_init(struct ccp_device *ccp)
|
|||
ioread32(cmd_q->reg_status);
|
||||
|
||||
/* Clear the interrupts */
|
||||
iowrite32(ALL_INTERRUPTS, cmd_q->reg_interrupt_status);
|
||||
iowrite32(SUPPORTED_INTERRUPTS, cmd_q->reg_interrupt_status);
|
||||
}
|
||||
|
||||
dev_dbg(dev, "Requesting an IRQ...\n");
|
||||
|
@ -882,7 +882,7 @@ static int ccp5_init(struct ccp_device *ccp)
|
|||
/* Enable interrupts */
|
||||
for (i = 0; i < ccp->cmd_q_count; i++) {
|
||||
cmd_q = &ccp->cmd_q[i];
|
||||
iowrite32(ALL_INTERRUPTS, cmd_q->reg_int_enable);
|
||||
iowrite32(SUPPORTED_INTERRUPTS, cmd_q->reg_int_enable);
|
||||
}
|
||||
|
||||
dev_dbg(dev, "Registering device...\n");
|
||||
|
@ -942,7 +942,7 @@ static void ccp5_destroy(struct ccp_device *ccp)
|
|||
iowrite32(cmd_q->qcontrol & ~CMD5_Q_RUN, cmd_q->reg_control);
|
||||
|
||||
/* Disable the interrupts */
|
||||
iowrite32(ALL_INTERRUPTS, cmd_q->reg_interrupt_status);
|
||||
iowrite32(SUPPORTED_INTERRUPTS, cmd_q->reg_interrupt_status);
|
||||
|
||||
/* Clear the interrupt status */
|
||||
iowrite32(0x00, cmd_q->reg_int_enable);
|
||||
|
@ -1002,7 +1002,8 @@ static irqreturn_t ccp5_irq_handler(int irq, void *data)
|
|||
cmd_q->int_rcvd = 1;
|
||||
|
||||
/* Acknowledge the interrupt and wake the kthread */
|
||||
iowrite32(ALL_INTERRUPTS, cmd_q->reg_interrupt_status);
|
||||
iowrite32(SUPPORTED_INTERRUPTS,
|
||||
cmd_q->reg_interrupt_status);
|
||||
wake_up_interruptible(&cmd_q->int_queue);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -109,9 +109,8 @@
|
|||
#define INT_COMPLETION 0x1
|
||||
#define INT_ERROR 0x2
|
||||
#define INT_QUEUE_STOPPED 0x4
|
||||
#define ALL_INTERRUPTS (INT_COMPLETION| \
|
||||
INT_ERROR| \
|
||||
INT_QUEUE_STOPPED)
|
||||
#define INT_EMPTY_QUEUE 0x8
|
||||
#define SUPPORTED_INTERRUPTS (INT_COMPLETION | INT_ERROR)
|
||||
|
||||
#define LSB_REGION_WIDTH 5
|
||||
#define MAX_LSB_CNT 8
|
||||
|
|
Loading…
Reference in New Issue