Lines Matching refs:tdes_dd
201 struct atmel_tdes_dev *tdes_dd; in atmel_tdes_dev_alloc() local
205 tdes_dd = list_first_entry_or_null(&atmel_tdes.dev_list, in atmel_tdes_dev_alloc()
208 return tdes_dd; in atmel_tdes_dev_alloc()
1080 struct atmel_tdes_dev *tdes_dd = dev_id; in atmel_tdes_irq() local
1083 reg = atmel_tdes_read(tdes_dd, TDES_ISR); in atmel_tdes_irq()
1084 if (reg & atmel_tdes_read(tdes_dd, TDES_IMR)) { in atmel_tdes_irq()
1085 atmel_tdes_write(tdes_dd, TDES_IDR, reg); in atmel_tdes_irq()
1086 if (TDES_FLAGS_BUSY & tdes_dd->flags) in atmel_tdes_irq()
1087 tasklet_schedule(&tdes_dd->done_task); in atmel_tdes_irq()
1089 dev_warn(tdes_dd->dev, "TDES interrupt when no active requests.\n"); in atmel_tdes_irq()
1156 struct atmel_tdes_dev *tdes_dd; in atmel_tdes_probe() local
1161 tdes_dd = devm_kmalloc(&pdev->dev, sizeof(*tdes_dd), GFP_KERNEL); in atmel_tdes_probe()
1162 if (!tdes_dd) in atmel_tdes_probe()
1165 tdes_dd->dev = dev; in atmel_tdes_probe()
1167 platform_set_drvdata(pdev, tdes_dd); in atmel_tdes_probe()
1169 INIT_LIST_HEAD(&tdes_dd->list); in atmel_tdes_probe()
1170 spin_lock_init(&tdes_dd->lock); in atmel_tdes_probe()
1172 tasklet_init(&tdes_dd->done_task, atmel_tdes_done_task, in atmel_tdes_probe()
1173 (unsigned long)tdes_dd); in atmel_tdes_probe()
1174 tasklet_init(&tdes_dd->queue_task, atmel_tdes_queue_task, in atmel_tdes_probe()
1175 (unsigned long)tdes_dd); in atmel_tdes_probe()
1177 crypto_init_queue(&tdes_dd->queue, ATMEL_TDES_QUEUE_LENGTH); in atmel_tdes_probe()
1186 tdes_dd->phys_base = tdes_res->start; in atmel_tdes_probe()
1189 tdes_dd->irq = platform_get_irq(pdev, 0); in atmel_tdes_probe()
1190 if (tdes_dd->irq < 0) { in atmel_tdes_probe()
1191 err = tdes_dd->irq; in atmel_tdes_probe()
1195 err = devm_request_irq(&pdev->dev, tdes_dd->irq, atmel_tdes_irq, in atmel_tdes_probe()
1196 IRQF_SHARED, "atmel-tdes", tdes_dd); in atmel_tdes_probe()
1203 tdes_dd->iclk = devm_clk_get(&pdev->dev, "tdes_clk"); in atmel_tdes_probe()
1204 if (IS_ERR(tdes_dd->iclk)) { in atmel_tdes_probe()
1206 err = PTR_ERR(tdes_dd->iclk); in atmel_tdes_probe()
1210 tdes_dd->io_base = devm_ioremap_resource(&pdev->dev, tdes_res); in atmel_tdes_probe()
1211 if (IS_ERR(tdes_dd->io_base)) { in atmel_tdes_probe()
1212 err = PTR_ERR(tdes_dd->io_base); in atmel_tdes_probe()
1216 err = atmel_tdes_hw_version_init(tdes_dd); in atmel_tdes_probe()
1220 atmel_tdes_get_cap(tdes_dd); in atmel_tdes_probe()
1222 err = atmel_tdes_buff_init(tdes_dd); in atmel_tdes_probe()
1226 if (tdes_dd->caps.has_dma) { in atmel_tdes_probe()
1227 err = atmel_tdes_dma_init(tdes_dd); in atmel_tdes_probe()
1232 dma_chan_name(tdes_dd->dma_lch_in.chan), in atmel_tdes_probe()
1233 dma_chan_name(tdes_dd->dma_lch_out.chan)); in atmel_tdes_probe()
1237 list_add_tail(&tdes_dd->list, &atmel_tdes.dev_list); in atmel_tdes_probe()
1240 err = atmel_tdes_register_algs(tdes_dd); in atmel_tdes_probe()
1250 list_del(&tdes_dd->list); in atmel_tdes_probe()
1252 if (tdes_dd->caps.has_dma) in atmel_tdes_probe()
1253 atmel_tdes_dma_cleanup(tdes_dd); in atmel_tdes_probe()
1255 atmel_tdes_buff_cleanup(tdes_dd); in atmel_tdes_probe()
1257 tasklet_kill(&tdes_dd->done_task); in atmel_tdes_probe()
1258 tasklet_kill(&tdes_dd->queue_task); in atmel_tdes_probe()
1265 struct atmel_tdes_dev *tdes_dd; in atmel_tdes_remove() local
1267 tdes_dd = platform_get_drvdata(pdev); in atmel_tdes_remove()
1268 if (!tdes_dd) in atmel_tdes_remove()
1271 list_del(&tdes_dd->list); in atmel_tdes_remove()
1274 atmel_tdes_unregister_algs(tdes_dd); in atmel_tdes_remove()
1276 tasklet_kill(&tdes_dd->done_task); in atmel_tdes_remove()
1277 tasklet_kill(&tdes_dd->queue_task); in atmel_tdes_remove()
1279 if (tdes_dd->caps.has_dma) in atmel_tdes_remove()
1280 atmel_tdes_dma_cleanup(tdes_dd); in atmel_tdes_remove()
1282 atmel_tdes_buff_cleanup(tdes_dd); in atmel_tdes_remove()