|
@@ -190,7 +190,7 @@ static void add_session_id(struct cryp_ctx *ctx)
|
|
|
static irqreturn_t cryp_interrupt_handler(int irq, void *param)
|
|
|
{
|
|
|
struct cryp_ctx *ctx;
|
|
|
- int i;
|
|
|
+ int count;
|
|
|
struct cryp_device_data *device_data;
|
|
|
|
|
|
if (param == NULL) {
|
|
@@ -215,12 +215,11 @@ static irqreturn_t cryp_interrupt_handler(int irq, void *param)
|
|
|
if (cryp_pending_irq_src(device_data,
|
|
|
CRYP_IRQ_SRC_OUTPUT_FIFO)) {
|
|
|
if (ctx->outlen / ctx->blocksize > 0) {
|
|
|
- for (i = 0; i < ctx->blocksize / 4; i++) {
|
|
|
- *(ctx->outdata) = readl_relaxed(
|
|
|
- &device_data->base->dout);
|
|
|
- ctx->outdata += 4;
|
|
|
- ctx->outlen -= 4;
|
|
|
- }
|
|
|
+ count = ctx->blocksize / 4;
|
|
|
+
|
|
|
+ readsl(&device_data->base->dout, ctx->outdata, count);
|
|
|
+ ctx->outdata += count;
|
|
|
+ ctx->outlen -= count;
|
|
|
|
|
|
if (ctx->outlen == 0) {
|
|
|
cryp_disable_irq_src(device_data,
|
|
@@ -230,12 +229,12 @@ static irqreturn_t cryp_interrupt_handler(int irq, void *param)
|
|
|
} else if (cryp_pending_irq_src(device_data,
|
|
|
CRYP_IRQ_SRC_INPUT_FIFO)) {
|
|
|
if (ctx->datalen / ctx->blocksize > 0) {
|
|
|
- for (i = 0 ; i < ctx->blocksize / 4; i++) {
|
|
|
- writel_relaxed(ctx->indata,
|
|
|
- &device_data->base->din);
|
|
|
- ctx->indata += 4;
|
|
|
- ctx->datalen -= 4;
|
|
|
- }
|
|
|
+ count = ctx->blocksize / 4;
|
|
|
+
|
|
|
+ writesl(&device_data->base->din, ctx->indata, count);
|
|
|
+
|
|
|
+ ctx->indata += count;
|
|
|
+ ctx->datalen -= count;
|
|
|
|
|
|
if (ctx->datalen == 0)
|
|
|
cryp_disable_irq_src(device_data,
|