Patch "crypto: ccp - Use only the relevant interrupt bits" has been added to the 4.10-stable tree
This is a note to let you know that I've just added the patch titled
crypto: ccp - Use only the relevant interrupt bits
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
crypto-ccp-use-only-the-relevant-interrupt-bits.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
56467cb11cf8ae4db9003f54b3d3425b5f07a10aMon Sep 17 00:00:00 2001
From: Gary R Hook <[email protected]>
Date: Thu, 20 Apr 2017 15:24:09 -0500
Subject: crypto: ccp - Use only the relevant interrupt bits
From: Gary R Hook <[email protected]>
commit 56467cb11cf8ae4db9003f54b3d3425b5f07a10a 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.
--- drivers/crypto/ccp/ccp-dev-v5.c | 9 +++++---- drivers/crypto/ccp/ccp-dev.h | 5 ++--- 2 files changed, 7 insertions(+), 7 deletions(-)
drivers/crypto/ccp/ccp-dev-v5.c +5 -4
@@ -747,7 +747,7 @@ static int ccp5_init(struct ccp_device *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" );
@@ -828,7 +828,7 @@ static int ccp5_init(struct ccp_device */* 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" );
@@ -888,7 +888,7 @@ static void ccp5_destroy(struct ccp_deviiowrite32 (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);
@@ -948,7 +948,8 @@ static irqreturn_t ccp5_irq_handler(int 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); } }
drivers/crypto/ccp/ccp-dev.h +2 -3
@@ -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
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/crypto-ccp-use-only-the-relevant-interrupt-bits.patch queue-4.10/crypto-ccp-change-isr-handler-method-for-a-v3-ccp.patch queue-4.10/crypto-ccp-change-isr-handler-method-for-a-v5-ccp.patch