Skip to content

Commit

Permalink
crypto: ccp - Use only the relevant interrupt bits
Browse files Browse the repository at this point in the history
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: <[email protected]> # 4.9.x+

Signed-off-by: Gary R Hook <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
garyrhook authored and herbertx committed Apr 21, 2017
1 parent 7701d1f commit 56467cb
Showing 2 changed files with 7 additions and 7 deletions.
9 changes: 5 additions & 4 deletions drivers/crypto/ccp/ccp-dev-v5.c
Original file line number Diff line number Diff line change
@@ -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);
}
}
5 changes: 2 additions & 3 deletions drivers/crypto/ccp/ccp-dev.h
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 56467cb

Please sign in to comment.