Lines Matching refs:aes_dd

425 	struct atmel_aes_dev *aes_dd;
429 aes_dd = list_first_entry_or_null(&atmel_aes.dev_list,
432 return aes_dd;
2378 struct atmel_aes_dev *aes_dd = dev_id;
2381 reg = atmel_aes_read(aes_dd, AES_ISR);
2382 if (reg & atmel_aes_read(aes_dd, AES_IMR)) {
2383 atmel_aes_write(aes_dd, AES_IDR, reg);
2384 if (AES_FLAGS_BUSY & aes_dd->flags)
2385 tasklet_schedule(&aes_dd->done_task);
2387 dev_warn(aes_dd->dev, "AES interrupt when no active requests.\n");
2544 struct atmel_aes_dev *aes_dd;
2549 aes_dd = devm_kzalloc(&pdev->dev, sizeof(*aes_dd), GFP_KERNEL);
2550 if (!aes_dd)
2553 aes_dd->dev = dev;
2555 platform_set_drvdata(pdev, aes_dd);
2557 INIT_LIST_HEAD(&aes_dd->list);
2558 spin_lock_init(&aes_dd->lock);
2560 tasklet_init(&aes_dd->done_task, atmel_aes_done_task,
2561 (unsigned long)aes_dd);
2562 tasklet_init(&aes_dd->queue_task, atmel_aes_queue_task,
2563 (unsigned long)aes_dd);
2565 crypto_init_queue(&aes_dd->queue, ATMEL_AES_QUEUE_LENGTH);
2567 aes_dd->io_base = devm_platform_get_and_ioremap_resource(pdev, 0, &aes_res);
2568 if (IS_ERR(aes_dd->io_base)) {
2569 err = PTR_ERR(aes_dd->io_base);
2572 aes_dd->phys_base = aes_res->start;
2575 aes_dd->irq = platform_get_irq(pdev, 0);
2576 if (aes_dd->irq < 0) {
2577 err = aes_dd->irq;
2581 err = devm_request_irq(&pdev->dev, aes_dd->irq, atmel_aes_irq,
2582 IRQF_SHARED, "atmel-aes", aes_dd);
2589 aes_dd->iclk = devm_clk_get(&pdev->dev, "aes_clk");
2590 if (IS_ERR(aes_dd->iclk)) {
2592 err = PTR_ERR(aes_dd->iclk);
2596 err = clk_prepare(aes_dd->iclk);
2600 err = atmel_aes_hw_version_init(aes_dd);
2604 atmel_aes_get_cap(aes_dd);
2607 if (aes_dd->caps.has_authenc && !atmel_sha_authenc_is_ready()) {
2613 err = atmel_aes_buff_init(aes_dd);
2617 err = atmel_aes_dma_init(aes_dd);
2622 list_add_tail(&aes_dd->list, &atmel_aes.dev_list);
2625 err = atmel_aes_register_algs(aes_dd);
2630 dma_chan_name(aes_dd->src.chan),
2631 dma_chan_name(aes_dd->dst.chan));
2637 list_del(&aes_dd->list);
2639 atmel_aes_dma_cleanup(aes_dd);
2641 atmel_aes_buff_cleanup(aes_dd);
2643 clk_unprepare(aes_dd->iclk);
2645 tasklet_kill(&aes_dd->done_task);
2646 tasklet_kill(&aes_dd->queue_task);
2653 struct atmel_aes_dev *aes_dd;
2655 aes_dd = platform_get_drvdata(pdev);
2658 list_del(&aes_dd->list);
2661 atmel_aes_unregister_algs(aes_dd);
2663 tasklet_kill(&aes_dd->done_task);
2664 tasklet_kill(&aes_dd->queue_task);
2666 atmel_aes_dma_cleanup(aes_dd);
2667 atmel_aes_buff_cleanup(aes_dd);
2669 clk_unprepare(aes_dd->iclk);