diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/crypto/omap-sham.c | 102 |
1 files changed, 52 insertions, 50 deletions
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index ac12a608d502..64698adec0c1 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c | |||
@@ -72,17 +72,19 @@ | |||
72 | 72 | ||
73 | #define DEFAULT_TIMEOUT_INTERVAL HZ | 73 | #define DEFAULT_TIMEOUT_INTERVAL HZ |
74 | 74 | ||
75 | #define FLAGS_FINUP 0x0002 | 75 | /* mostly device flags */ |
76 | #define FLAGS_FINAL 0x0004 | 76 | #define FLAGS_BUSY 0 |
77 | #define FLAGS_SG 0x0008 | 77 | #define FLAGS_FINAL 1 |
78 | #define FLAGS_SHA1 0x0010 | 78 | #define FLAGS_DMA_ACTIVE 2 |
79 | #define FLAGS_DMA_ACTIVE 0x0020 | 79 | #define FLAGS_OUTPUT_READY 3 |
80 | #define FLAGS_OUTPUT_READY 0x0040 | 80 | #define FLAGS_INIT 4 |
81 | #define FLAGS_INIT 0x0100 | 81 | #define FLAGS_CPU 5 |
82 | #define FLAGS_CPU 0x0200 | 82 | /* context flags */ |
83 | #define FLAGS_HMAC 0x0400 | 83 | #define FLAGS_FINUP 16 |
84 | #define FLAGS_ERROR 0x0800 | 84 | #define FLAGS_SG 17 |
85 | #define FLAGS_BUSY 0x1000 | 85 | #define FLAGS_SHA1 18 |
86 | #define FLAGS_HMAC 19 | ||
87 | #define FLAGS_ERROR 20 | ||
86 | 88 | ||
87 | #define OP_UPDATE 1 | 89 | #define OP_UPDATE 1 |
88 | #define OP_FINAL 2 | 90 | #define OP_FINAL 2 |
@@ -223,7 +225,7 @@ static void omap_sham_copy_ready_hash(struct ahash_request *req) | |||
223 | if (!hash) | 225 | if (!hash) |
224 | return; | 226 | return; |
225 | 227 | ||
226 | if (likely(ctx->flags & FLAGS_SHA1)) { | 228 | if (likely(ctx->flags & BIT(FLAGS_SHA1))) { |
227 | /* SHA1 results are in big endian */ | 229 | /* SHA1 results are in big endian */ |
228 | for (i = 0; i < SHA1_DIGEST_SIZE / sizeof(u32); i++) | 230 | for (i = 0; i < SHA1_DIGEST_SIZE / sizeof(u32); i++) |
229 | hash[i] = be32_to_cpu(in[i]); | 231 | hash[i] = be32_to_cpu(in[i]); |
@@ -238,7 +240,7 @@ static int omap_sham_hw_init(struct omap_sham_dev *dd) | |||
238 | { | 240 | { |
239 | clk_enable(dd->iclk); | 241 | clk_enable(dd->iclk); |
240 | 242 | ||
241 | if (!(dd->flags & FLAGS_INIT)) { | 243 | if (!(dd->flags & BIT(FLAGS_INIT))) { |
242 | omap_sham_write_mask(dd, SHA_REG_MASK, | 244 | omap_sham_write_mask(dd, SHA_REG_MASK, |
243 | SHA_REG_MASK_SOFTRESET, SHA_REG_MASK_SOFTRESET); | 245 | SHA_REG_MASK_SOFTRESET, SHA_REG_MASK_SOFTRESET); |
244 | 246 | ||
@@ -246,7 +248,7 @@ static int omap_sham_hw_init(struct omap_sham_dev *dd) | |||
246 | SHA_REG_SYSSTATUS_RESETDONE)) | 248 | SHA_REG_SYSSTATUS_RESETDONE)) |
247 | return -ETIMEDOUT; | 249 | return -ETIMEDOUT; |
248 | 250 | ||
249 | dd->flags |= FLAGS_INIT; | 251 | dd->flags |= BIT(FLAGS_INIT); |
250 | dd->err = 0; | 252 | dd->err = 0; |
251 | } | 253 | } |
252 | 254 | ||
@@ -269,7 +271,7 @@ static void omap_sham_write_ctrl(struct omap_sham_dev *dd, size_t length, | |||
269 | * Setting ALGO_CONST only for the first iteration | 271 | * Setting ALGO_CONST only for the first iteration |
270 | * and CLOSE_HASH only for the last one. | 272 | * and CLOSE_HASH only for the last one. |
271 | */ | 273 | */ |
272 | if (ctx->flags & FLAGS_SHA1) | 274 | if (ctx->flags & BIT(FLAGS_SHA1)) |
273 | val |= SHA_REG_CTRL_ALGO; | 275 | val |= SHA_REG_CTRL_ALGO; |
274 | if (!ctx->digcnt) | 276 | if (!ctx->digcnt) |
275 | val |= SHA_REG_CTRL_ALGO_CONST; | 277 | val |= SHA_REG_CTRL_ALGO_CONST; |
@@ -301,7 +303,7 @@ static int omap_sham_xmit_cpu(struct omap_sham_dev *dd, const u8 *buf, | |||
301 | return -ETIMEDOUT; | 303 | return -ETIMEDOUT; |
302 | 304 | ||
303 | if (final) | 305 | if (final) |
304 | ctx->flags |= FLAGS_FINAL; /* catch last interrupt */ | 306 | ctx->flags |= BIT(FLAGS_FINAL); /* catch last interrupt */ |
305 | 307 | ||
306 | len32 = DIV_ROUND_UP(length, sizeof(u32)); | 308 | len32 = DIV_ROUND_UP(length, sizeof(u32)); |
307 | 309 | ||
@@ -334,9 +336,9 @@ static int omap_sham_xmit_dma(struct omap_sham_dev *dd, dma_addr_t dma_addr, | |||
334 | ctx->digcnt += length; | 336 | ctx->digcnt += length; |
335 | 337 | ||
336 | if (final) | 338 | if (final) |
337 | ctx->flags |= FLAGS_FINAL; /* catch last interrupt */ | 339 | ctx->flags |= BIT(FLAGS_FINAL); /* catch last interrupt */ |
338 | 340 | ||
339 | dd->flags |= FLAGS_DMA_ACTIVE; | 341 | dd->flags |= BIT(FLAGS_DMA_ACTIVE); |
340 | 342 | ||
341 | omap_start_dma(dd->dma_lch); | 343 | omap_start_dma(dd->dma_lch); |
342 | 344 | ||
@@ -392,7 +394,7 @@ static int omap_sham_xmit_dma_map(struct omap_sham_dev *dd, | |||
392 | return -EINVAL; | 394 | return -EINVAL; |
393 | } | 395 | } |
394 | 396 | ||
395 | ctx->flags &= ~FLAGS_SG; | 397 | ctx->flags &= ~BIT(FLAGS_SG); |
396 | 398 | ||
397 | /* next call does not fail... so no unmap in the case of error */ | 399 | /* next call does not fail... so no unmap in the case of error */ |
398 | return omap_sham_xmit_dma(dd, ctx->dma_addr, length, final); | 400 | return omap_sham_xmit_dma(dd, ctx->dma_addr, length, final); |
@@ -406,7 +408,7 @@ static int omap_sham_update_dma_slow(struct omap_sham_dev *dd) | |||
406 | 408 | ||
407 | omap_sham_append_sg(ctx); | 409 | omap_sham_append_sg(ctx); |
408 | 410 | ||
409 | final = (ctx->flags & FLAGS_FINUP) && !ctx->total; | 411 | final = (ctx->flags & BIT(FLAGS_FINUP)) && !ctx->total; |
410 | 412 | ||
411 | dev_dbg(dd->dev, "slow: bufcnt: %u, digcnt: %d, final: %d\n", | 413 | dev_dbg(dd->dev, "slow: bufcnt: %u, digcnt: %d, final: %d\n", |
412 | ctx->bufcnt, ctx->digcnt, final); | 414 | ctx->bufcnt, ctx->digcnt, final); |
@@ -452,7 +454,7 @@ static int omap_sham_update_dma_start(struct omap_sham_dev *dd) | |||
452 | length = min(ctx->total, sg->length); | 454 | length = min(ctx->total, sg->length); |
453 | 455 | ||
454 | if (sg_is_last(sg)) { | 456 | if (sg_is_last(sg)) { |
455 | if (!(ctx->flags & FLAGS_FINUP)) { | 457 | if (!(ctx->flags & BIT(FLAGS_FINUP))) { |
456 | /* not last sg must be SHA1_MD5_BLOCK_SIZE aligned */ | 458 | /* not last sg must be SHA1_MD5_BLOCK_SIZE aligned */ |
457 | tail = length & (SHA1_MD5_BLOCK_SIZE - 1); | 459 | tail = length & (SHA1_MD5_BLOCK_SIZE - 1); |
458 | /* without finup() we need one block to close hash */ | 460 | /* without finup() we need one block to close hash */ |
@@ -467,12 +469,12 @@ static int omap_sham_update_dma_start(struct omap_sham_dev *dd) | |||
467 | return -EINVAL; | 469 | return -EINVAL; |
468 | } | 470 | } |
469 | 471 | ||
470 | ctx->flags |= FLAGS_SG; | 472 | ctx->flags |= BIT(FLAGS_SG); |
471 | 473 | ||
472 | ctx->total -= length; | 474 | ctx->total -= length; |
473 | ctx->offset = length; /* offset where to start slow */ | 475 | ctx->offset = length; /* offset where to start slow */ |
474 | 476 | ||
475 | final = (ctx->flags & FLAGS_FINUP) && !ctx->total; | 477 | final = (ctx->flags & BIT(FLAGS_FINUP)) && !ctx->total; |
476 | 478 | ||
477 | /* next call does not fail... so no unmap in the case of error */ | 479 | /* next call does not fail... so no unmap in the case of error */ |
478 | return omap_sham_xmit_dma(dd, sg_dma_address(ctx->sg), length, final); | 480 | return omap_sham_xmit_dma(dd, sg_dma_address(ctx->sg), length, final); |
@@ -495,7 +497,7 @@ static int omap_sham_update_dma_stop(struct omap_sham_dev *dd) | |||
495 | struct omap_sham_reqctx *ctx = ahash_request_ctx(dd->req); | 497 | struct omap_sham_reqctx *ctx = ahash_request_ctx(dd->req); |
496 | 498 | ||
497 | omap_stop_dma(dd->dma_lch); | 499 | omap_stop_dma(dd->dma_lch); |
498 | if (ctx->flags & FLAGS_SG) { | 500 | if (ctx->flags & BIT(FLAGS_SG)) { |
499 | dma_unmap_sg(dd->dev, ctx->sg, 1, DMA_TO_DEVICE); | 501 | dma_unmap_sg(dd->dev, ctx->sg, 1, DMA_TO_DEVICE); |
500 | if (ctx->sg->length == ctx->offset) { | 502 | if (ctx->sg->length == ctx->offset) { |
501 | ctx->sg = sg_next(ctx->sg); | 503 | ctx->sg = sg_next(ctx->sg); |
@@ -537,18 +539,18 @@ static int omap_sham_init(struct ahash_request *req) | |||
537 | crypto_ahash_digestsize(tfm)); | 539 | crypto_ahash_digestsize(tfm)); |
538 | 540 | ||
539 | if (crypto_ahash_digestsize(tfm) == SHA1_DIGEST_SIZE) | 541 | if (crypto_ahash_digestsize(tfm) == SHA1_DIGEST_SIZE) |
540 | ctx->flags |= FLAGS_SHA1; | 542 | ctx->flags |= BIT(FLAGS_SHA1); |
541 | 543 | ||
542 | ctx->bufcnt = 0; | 544 | ctx->bufcnt = 0; |
543 | ctx->digcnt = 0; | 545 | ctx->digcnt = 0; |
544 | ctx->buflen = BUFLEN; | 546 | ctx->buflen = BUFLEN; |
545 | 547 | ||
546 | if (tctx->flags & FLAGS_HMAC) { | 548 | if (tctx->flags & BIT(FLAGS_HMAC)) { |
547 | struct omap_sham_hmac_ctx *bctx = tctx->base; | 549 | struct omap_sham_hmac_ctx *bctx = tctx->base; |
548 | 550 | ||
549 | memcpy(ctx->buffer, bctx->ipad, SHA1_MD5_BLOCK_SIZE); | 551 | memcpy(ctx->buffer, bctx->ipad, SHA1_MD5_BLOCK_SIZE); |
550 | ctx->bufcnt = SHA1_MD5_BLOCK_SIZE; | 552 | ctx->bufcnt = SHA1_MD5_BLOCK_SIZE; |
551 | ctx->flags |= FLAGS_HMAC; | 553 | ctx->flags |= BIT(FLAGS_HMAC); |
552 | } | 554 | } |
553 | 555 | ||
554 | return 0; | 556 | return 0; |
@@ -562,9 +564,9 @@ static int omap_sham_update_req(struct omap_sham_dev *dd) | |||
562 | int err; | 564 | int err; |
563 | 565 | ||
564 | dev_dbg(dd->dev, "update_req: total: %u, digcnt: %d, finup: %d\n", | 566 | dev_dbg(dd->dev, "update_req: total: %u, digcnt: %d, finup: %d\n", |
565 | ctx->total, ctx->digcnt, (ctx->flags & FLAGS_FINUP) != 0); | 567 | ctx->total, ctx->digcnt, (ctx->flags & BIT(FLAGS_FINUP)) != 0); |
566 | 568 | ||
567 | if (ctx->flags & FLAGS_CPU) | 569 | if (ctx->flags & BIT(FLAGS_CPU)) |
568 | err = omap_sham_update_cpu(dd); | 570 | err = omap_sham_update_cpu(dd); |
569 | else | 571 | else |
570 | err = omap_sham_update_dma_start(dd); | 572 | err = omap_sham_update_dma_start(dd); |
@@ -624,7 +626,7 @@ static int omap_sham_finish(struct ahash_request *req) | |||
624 | 626 | ||
625 | if (ctx->digcnt) { | 627 | if (ctx->digcnt) { |
626 | omap_sham_copy_ready_hash(req); | 628 | omap_sham_copy_ready_hash(req); |
627 | if (ctx->flags & FLAGS_HMAC) | 629 | if (ctx->flags & BIT(FLAGS_HMAC)) |
628 | err = omap_sham_finish_hmac(req); | 630 | err = omap_sham_finish_hmac(req); |
629 | } | 631 | } |
630 | 632 | ||
@@ -640,14 +642,14 @@ static void omap_sham_finish_req(struct ahash_request *req, int err) | |||
640 | 642 | ||
641 | if (!err) { | 643 | if (!err) { |
642 | omap_sham_copy_hash(req, 1); | 644 | omap_sham_copy_hash(req, 1); |
643 | if (ctx->flags & FLAGS_FINAL) | 645 | if (ctx->flags & BIT(FLAGS_FINAL)) |
644 | err = omap_sham_finish(req); | 646 | err = omap_sham_finish(req); |
645 | } else { | 647 | } else { |
646 | ctx->flags |= FLAGS_ERROR; | 648 | ctx->flags |= BIT(FLAGS_ERROR); |
647 | } | 649 | } |
648 | 650 | ||
649 | clk_disable(dd->iclk); | 651 | clk_disable(dd->iclk); |
650 | dd->flags &= ~FLAGS_BUSY; | 652 | dd->flags &= ~BIT(FLAGS_BUSY); |
651 | 653 | ||
652 | if (req->base.complete) | 654 | if (req->base.complete) |
653 | req->base.complete(&req->base, err); | 655 | req->base.complete(&req->base, err); |
@@ -664,14 +666,14 @@ static int omap_sham_handle_queue(struct omap_sham_dev *dd, | |||
664 | spin_lock_irqsave(&dd->lock, flags); | 666 | spin_lock_irqsave(&dd->lock, flags); |
665 | if (req) | 667 | if (req) |
666 | ret = ahash_enqueue_request(&dd->queue, req); | 668 | ret = ahash_enqueue_request(&dd->queue, req); |
667 | if (dd->flags & FLAGS_BUSY) { | 669 | if (dd->flags & BIT(FLAGS_BUSY)) { |
668 | spin_unlock_irqrestore(&dd->lock, flags); | 670 | spin_unlock_irqrestore(&dd->lock, flags); |
669 | return ret; | 671 | return ret; |
670 | } | 672 | } |
671 | backlog = crypto_get_backlog(&dd->queue); | 673 | backlog = crypto_get_backlog(&dd->queue); |
672 | async_req = crypto_dequeue_request(&dd->queue); | 674 | async_req = crypto_dequeue_request(&dd->queue); |
673 | if (async_req) | 675 | if (async_req) |
674 | dd->flags |= FLAGS_BUSY; | 676 | dd->flags |= BIT(FLAGS_BUSY); |
675 | spin_unlock_irqrestore(&dd->lock, flags); | 677 | spin_unlock_irqrestore(&dd->lock, flags); |
676 | 678 | ||
677 | if (!async_req) | 679 | if (!async_req) |
@@ -707,7 +709,7 @@ static int omap_sham_handle_queue(struct omap_sham_dev *dd, | |||
707 | 709 | ||
708 | if (ctx->op == OP_UPDATE) { | 710 | if (ctx->op == OP_UPDATE) { |
709 | err = omap_sham_update_req(dd); | 711 | err = omap_sham_update_req(dd); |
710 | if (err != -EINPROGRESS && (ctx->flags & FLAGS_FINUP)) | 712 | if (err != -EINPROGRESS && (ctx->flags & BIT(FLAGS_FINUP))) |
711 | /* no final() after finup() */ | 713 | /* no final() after finup() */ |
712 | err = omap_sham_final_req(dd); | 714 | err = omap_sham_final_req(dd); |
713 | } else if (ctx->op == OP_FINAL) { | 715 | } else if (ctx->op == OP_FINAL) { |
@@ -747,7 +749,7 @@ static int omap_sham_update(struct ahash_request *req) | |||
747 | ctx->sg = req->src; | 749 | ctx->sg = req->src; |
748 | ctx->offset = 0; | 750 | ctx->offset = 0; |
749 | 751 | ||
750 | if (ctx->flags & FLAGS_FINUP) { | 752 | if (ctx->flags & BIT(FLAGS_FINUP)) { |
751 | if ((ctx->digcnt + ctx->bufcnt + ctx->total) < 9) { | 753 | if ((ctx->digcnt + ctx->bufcnt + ctx->total) < 9) { |
752 | /* | 754 | /* |
753 | * OMAP HW accel works only with buffers >= 9 | 755 | * OMAP HW accel works only with buffers >= 9 |
@@ -760,7 +762,7 @@ static int omap_sham_update(struct ahash_request *req) | |||
760 | /* | 762 | /* |
761 | * faster to use CPU for short transfers | 763 | * faster to use CPU for short transfers |
762 | */ | 764 | */ |
763 | ctx->flags |= FLAGS_CPU; | 765 | ctx->flags |= BIT(FLAGS_CPU); |
764 | } | 766 | } |
765 | } else if (ctx->bufcnt + ctx->total < ctx->buflen) { | 767 | } else if (ctx->bufcnt + ctx->total < ctx->buflen) { |
766 | omap_sham_append_sg(ctx); | 768 | omap_sham_append_sg(ctx); |
@@ -797,9 +799,9 @@ static int omap_sham_final(struct ahash_request *req) | |||
797 | { | 799 | { |
798 | struct omap_sham_reqctx *ctx = ahash_request_ctx(req); | 800 | struct omap_sham_reqctx *ctx = ahash_request_ctx(req); |
799 | 801 | ||
800 | ctx->flags |= FLAGS_FINUP; | 802 | ctx->flags |= BIT(FLAGS_FINUP); |
801 | 803 | ||
802 | if (ctx->flags & FLAGS_ERROR) | 804 | if (ctx->flags & BIT(FLAGS_ERROR)) |
803 | return 0; /* uncompleted hash is not needed */ | 805 | return 0; /* uncompleted hash is not needed */ |
804 | 806 | ||
805 | /* OMAP HW accel works only with buffers >= 9 */ | 807 | /* OMAP HW accel works only with buffers >= 9 */ |
@@ -818,7 +820,7 @@ static int omap_sham_finup(struct ahash_request *req) | |||
818 | struct omap_sham_reqctx *ctx = ahash_request_ctx(req); | 820 | struct omap_sham_reqctx *ctx = ahash_request_ctx(req); |
819 | int err1, err2; | 821 | int err1, err2; |
820 | 822 | ||
821 | ctx->flags |= FLAGS_FINUP; | 823 | ctx->flags |= BIT(FLAGS_FINUP); |
822 | 824 | ||
823 | err1 = omap_sham_update(req); | 825 | err1 = omap_sham_update(req); |
824 | if (err1 == -EINPROGRESS || err1 == -EBUSY) | 826 | if (err1 == -EINPROGRESS || err1 == -EBUSY) |
@@ -890,7 +892,7 @@ static int omap_sham_cra_init_alg(struct crypto_tfm *tfm, const char *alg_base) | |||
890 | 892 | ||
891 | if (alg_base) { | 893 | if (alg_base) { |
892 | struct omap_sham_hmac_ctx *bctx = tctx->base; | 894 | struct omap_sham_hmac_ctx *bctx = tctx->base; |
893 | tctx->flags |= FLAGS_HMAC; | 895 | tctx->flags |= BIT(FLAGS_HMAC); |
894 | bctx->shash = crypto_alloc_shash(alg_base, 0, | 896 | bctx->shash = crypto_alloc_shash(alg_base, 0, |
895 | CRYPTO_ALG_NEED_FALLBACK); | 897 | CRYPTO_ALG_NEED_FALLBACK); |
896 | if (IS_ERR(bctx->shash)) { | 898 | if (IS_ERR(bctx->shash)) { |
@@ -927,7 +929,7 @@ static void omap_sham_cra_exit(struct crypto_tfm *tfm) | |||
927 | crypto_free_shash(tctx->fallback); | 929 | crypto_free_shash(tctx->fallback); |
928 | tctx->fallback = NULL; | 930 | tctx->fallback = NULL; |
929 | 931 | ||
930 | if (tctx->flags & FLAGS_HMAC) { | 932 | if (tctx->flags & BIT(FLAGS_HMAC)) { |
931 | struct omap_sham_hmac_ctx *bctx = tctx->base; | 933 | struct omap_sham_hmac_ctx *bctx = tctx->base; |
932 | crypto_free_shash(bctx->shash); | 934 | crypto_free_shash(bctx->shash); |
933 | } | 935 | } |
@@ -1035,13 +1037,13 @@ static void omap_sham_done_task(unsigned long data) | |||
1035 | struct omap_sham_reqctx *ctx = ahash_request_ctx(req); | 1037 | struct omap_sham_reqctx *ctx = ahash_request_ctx(req); |
1036 | int ready = 0, err = 0; | 1038 | int ready = 0, err = 0; |
1037 | 1039 | ||
1038 | if (ctx->flags & FLAGS_OUTPUT_READY) { | 1040 | if (ctx->flags & BIT(FLAGS_OUTPUT_READY)) { |
1039 | ctx->flags &= ~FLAGS_OUTPUT_READY; | 1041 | ctx->flags &= ~BIT(FLAGS_OUTPUT_READY); |
1040 | ready = 1; | 1042 | ready = 1; |
1041 | } | 1043 | } |
1042 | 1044 | ||
1043 | if (dd->flags & FLAGS_DMA_ACTIVE) { | 1045 | if (dd->flags & BIT(FLAGS_DMA_ACTIVE)) { |
1044 | dd->flags &= ~FLAGS_DMA_ACTIVE; | 1046 | dd->flags &= ~BIT(FLAGS_DMA_ACTIVE); |
1045 | omap_sham_update_dma_stop(dd); | 1047 | omap_sham_update_dma_stop(dd); |
1046 | if (!dd->err) | 1048 | if (!dd->err) |
1047 | err = omap_sham_update_dma_start(dd); | 1049 | err = omap_sham_update_dma_start(dd); |
@@ -1075,7 +1077,7 @@ static irqreturn_t omap_sham_irq(int irq, void *dev_id) | |||
1075 | return IRQ_HANDLED; | 1077 | return IRQ_HANDLED; |
1076 | } | 1078 | } |
1077 | 1079 | ||
1078 | if (unlikely(ctx->flags & FLAGS_FINAL)) | 1080 | if (unlikely(ctx->flags & BIT(FLAGS_FINAL))) |
1079 | /* final -> allow device to go to power-saving mode */ | 1081 | /* final -> allow device to go to power-saving mode */ |
1080 | omap_sham_write_mask(dd, SHA_REG_CTRL, 0, SHA_REG_CTRL_LENGTH); | 1082 | omap_sham_write_mask(dd, SHA_REG_CTRL, 0, SHA_REG_CTRL_LENGTH); |
1081 | 1083 | ||
@@ -1083,7 +1085,7 @@ static irqreturn_t omap_sham_irq(int irq, void *dev_id) | |||
1083 | SHA_REG_CTRL_OUTPUT_READY); | 1085 | SHA_REG_CTRL_OUTPUT_READY); |
1084 | omap_sham_read(dd, SHA_REG_CTRL); | 1086 | omap_sham_read(dd, SHA_REG_CTRL); |
1085 | 1087 | ||
1086 | ctx->flags |= FLAGS_OUTPUT_READY; | 1088 | ctx->flags |= BIT(FLAGS_OUTPUT_READY); |
1087 | dd->err = 0; | 1089 | dd->err = 0; |
1088 | tasklet_schedule(&dd->done_task); | 1090 | tasklet_schedule(&dd->done_task); |
1089 | 1091 | ||
@@ -1097,7 +1099,7 @@ static void omap_sham_dma_callback(int lch, u16 ch_status, void *data) | |||
1097 | if (ch_status != OMAP_DMA_BLOCK_IRQ) { | 1099 | if (ch_status != OMAP_DMA_BLOCK_IRQ) { |
1098 | pr_err("omap-sham DMA error status: 0x%hx\n", ch_status); | 1100 | pr_err("omap-sham DMA error status: 0x%hx\n", ch_status); |
1099 | dd->err = -EIO; | 1101 | dd->err = -EIO; |
1100 | dd->flags &= ~FLAGS_INIT; /* request to re-initialize */ | 1102 | dd->flags &= ~BIT(FLAGS_INIT); /* request to re-initialize */ |
1101 | } | 1103 | } |
1102 | 1104 | ||
1103 | tasklet_schedule(&dd->done_task); | 1105 | tasklet_schedule(&dd->done_task); |