Lines Matching defs:sha_dd
1366 struct atmel_sha_dev *sha_dd = dev_id;
1369 reg = atmel_sha_read(sha_dd, SHA_ISR);
1370 if (reg & atmel_sha_read(sha_dd, SHA_IMR)) {
1371 atmel_sha_write(sha_dd, SHA_IDR, reg);
1372 if (SHA_FLAGS_BUSY & sha_dd->flags) {
1373 sha_dd->flags |= SHA_FLAGS_OUTPUT_READY;
1374 if (!(SHA_FLAGS_CPU & sha_dd->flags))
1375 sha_dd->flags |= SHA_FLAGS_DMA_READY;
1376 tasklet_schedule(&sha_dd->done_task);
1378 dev_warn(sha_dd->dev, "SHA interrupt when no active requests.\n");
2557 struct atmel_sha_dev *sha_dd;
2562 sha_dd = devm_kzalloc(&pdev->dev, sizeof(*sha_dd), GFP_KERNEL);
2563 if (!sha_dd)
2566 sha_dd->dev = dev;
2568 platform_set_drvdata(pdev, sha_dd);
2570 INIT_LIST_HEAD(&sha_dd->list);
2571 spin_lock_init(&sha_dd->lock);
2573 tasklet_init(&sha_dd->done_task, atmel_sha_done_task,
2574 (unsigned long)sha_dd);
2575 tasklet_init(&sha_dd->queue_task, atmel_sha_queue_task,
2576 (unsigned long)sha_dd);
2578 crypto_init_queue(&sha_dd->queue, ATMEL_SHA_QUEUE_LENGTH);
2587 sha_dd->phys_base = sha_res->start;
2590 sha_dd->irq = platform_get_irq(pdev, 0);
2591 if (sha_dd->irq < 0) {
2592 err = sha_dd->irq;
2596 err = devm_request_irq(&pdev->dev, sha_dd->irq, atmel_sha_irq,
2597 IRQF_SHARED, "atmel-sha", sha_dd);
2604 sha_dd->iclk = devm_clk_get(&pdev->dev, "sha_clk");
2605 if (IS_ERR(sha_dd->iclk)) {
2607 err = PTR_ERR(sha_dd->iclk);
2611 sha_dd->io_base = devm_ioremap_resource(&pdev->dev, sha_res);
2612 if (IS_ERR(sha_dd->io_base)) {
2614 err = PTR_ERR(sha_dd->io_base);
2618 err = clk_prepare(sha_dd->iclk);
2622 err = atmel_sha_hw_version_init(sha_dd);
2626 atmel_sha_get_cap(sha_dd);
2628 if (sha_dd->caps.has_dma) {
2629 err = atmel_sha_dma_init(sha_dd);
2634 dma_chan_name(sha_dd->dma_lch_in.chan));
2638 list_add_tail(&sha_dd->list, &atmel_sha.dev_list);
2641 err = atmel_sha_register_algs(sha_dd);
2646 sha_dd->caps.has_sha224 ? "/SHA224" : "",
2647 sha_dd->caps.has_sha_384_512 ? "/SHA384/SHA512" : "");
2653 list_del(&sha_dd->list);
2655 if (sha_dd->caps.has_dma)
2656 atmel_sha_dma_cleanup(sha_dd);
2658 clk_unprepare(sha_dd->iclk);
2660 tasklet_kill(&sha_dd->queue_task);
2661 tasklet_kill(&sha_dd->done_task);
2668 struct atmel_sha_dev *sha_dd;
2670 sha_dd = platform_get_drvdata(pdev);
2671 if (!sha_dd)
2674 list_del(&sha_dd->list);
2677 atmel_sha_unregister_algs(sha_dd);
2679 tasklet_kill(&sha_dd->queue_task);
2680 tasklet_kill(&sha_dd->done_task);
2682 if (sha_dd->caps.has_dma)
2683 atmel_sha_dma_cleanup(sha_dd);
2685 clk_unprepare(sha_dd->iclk);