Commit 36dffff2 authored by Gary R Hook's avatar Gary R Hook Committed by Greg Kroah-Hartman

crypto: ccp - Use only the relevant interrupt bits

commit 56467cb1 upstream.

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.
Signed-off-by: default avatarGary R Hook <gary.hook@amd.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bcc70358
...@@ -740,7 +740,7 @@ static int ccp5_init(struct ccp_device *ccp) ...@@ -740,7 +740,7 @@ static int ccp5_init(struct ccp_device *ccp)
ioread32(cmd_q->reg_status); ioread32(cmd_q->reg_status);
/* Clear the interrupts */ /* 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"); dev_dbg(dev, "Requesting an IRQ...\n");
...@@ -824,7 +824,7 @@ static int ccp5_init(struct ccp_device *ccp) ...@@ -824,7 +824,7 @@ static int ccp5_init(struct ccp_device *ccp)
/* Enable interrupts */ /* Enable interrupts */
for (i = 0; i < ccp->cmd_q_count; i++) { for (i = 0; i < ccp->cmd_q_count; i++) {
cmd_q = &ccp->cmd_q[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"); dev_dbg(dev, "Registering device...\n");
...@@ -884,7 +884,7 @@ static void ccp5_destroy(struct ccp_device *ccp) ...@@ -884,7 +884,7 @@ static void ccp5_destroy(struct ccp_device *ccp)
iowrite32(cmd_q->qcontrol & ~CMD5_Q_RUN, cmd_q->reg_control); iowrite32(cmd_q->qcontrol & ~CMD5_Q_RUN, cmd_q->reg_control);
/* Disable the interrupts */ /* Disable the interrupts */
iowrite32(ALL_INTERRUPTS, cmd_q->reg_interrupt_status); iowrite32(SUPPORTED_INTERRUPTS, cmd_q->reg_interrupt_status);
/* Clear the interrupt status */ /* Clear the interrupt status */
iowrite32(0x00, cmd_q->reg_int_enable); iowrite32(0x00, cmd_q->reg_int_enable);
...@@ -944,7 +944,8 @@ static irqreturn_t ccp5_irq_handler(int irq, void *data) ...@@ -944,7 +944,8 @@ static irqreturn_t ccp5_irq_handler(int irq, void *data)
cmd_q->int_rcvd = 1; cmd_q->int_rcvd = 1;
/* Acknowledge the interrupt and wake the kthread */ /* 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); wake_up_interruptible(&cmd_q->int_queue);
} }
} }
......
...@@ -109,9 +109,8 @@ ...@@ -109,9 +109,8 @@
#define INT_COMPLETION 0x1 #define INT_COMPLETION 0x1
#define INT_ERROR 0x2 #define INT_ERROR 0x2
#define INT_QUEUE_STOPPED 0x4 #define INT_QUEUE_STOPPED 0x4
#define ALL_INTERRUPTS (INT_COMPLETION| \ #define INT_EMPTY_QUEUE 0x8
INT_ERROR| \ #define SUPPORTED_INTERRUPTS (INT_COMPLETION | INT_ERROR)
INT_QUEUE_STOPPED)
#define LSB_REGION_WIDTH 5 #define LSB_REGION_WIDTH 5
#define MAX_LSB_CNT 8 #define MAX_LSB_CNT 8
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment