H A D | crypto4xx_core.c | 129 ctx->sa_in = dma_alloc_coherent(ctx->dev->core_dev->device, size * 4, crypto4xx_alloc_sa() 134 ctx->sa_out = dma_alloc_coherent(ctx->dev->core_dev->device, size * 4, crypto4xx_alloc_sa() 137 dma_free_coherent(ctx->dev->core_dev->device, crypto4xx_alloc_sa() 153 dma_free_coherent(ctx->dev->core_dev->device, ctx->sa_len * 4, crypto4xx_free_sa() 156 dma_free_coherent(ctx->dev->core_dev->device, ctx->sa_len * 4, crypto4xx_free_sa() 166 ctx->state_record = dma_alloc_coherent(ctx->dev->core_dev->device, crypto4xx_alloc_state_record() 179 dma_free_coherent(ctx->dev->core_dev->device, crypto4xx_free_state_record() 195 dev->pdr = dma_alloc_coherent(dev->core_dev->device, crypto4xx_build_pdr() 204 dma_free_coherent(dev->core_dev->device, crypto4xx_build_pdr() 211 dev->shadow_sa_pool = dma_alloc_coherent(dev->core_dev->device, crypto4xx_build_pdr() 218 dev->shadow_sr_pool = dma_alloc_coherent(dev->core_dev->device, crypto4xx_build_pdr() 244 dma_free_coherent(dev->core_dev->device, crypto4xx_destroy_pdr() 248 dma_free_coherent(dev->core_dev->device, 256 * PPC4XX_NUM_PD, crypto4xx_destroy_pdr() 251 dma_free_coherent(dev->core_dev->device, crypto4xx_destroy_pdr() 281 spin_lock_irqsave(&dev->core_dev->lock, flags); crypto4xx_put_pd_to_pdr() 287 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_put_pd_to_pdr() 307 dev->gdr = dma_alloc_coherent(dev->core_dev->device, crypto4xx_build_gdr() 320 dma_free_coherent(dev->core_dev->device, crypto4xx_destroy_gdr() 354 spin_lock_irqsave(&dev->core_dev->lock, flags); crypto4xx_put_gd_to_gdr() 356 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_put_gd_to_gdr() 365 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_put_gd_to_gdr() 389 dev->sdr = dma_alloc_coherent(dev->core_dev->device, crypto4xx_build_sdr() 397 dma_alloc_coherent(dev->core_dev->device, crypto4xx_build_sdr() 401 dma_free_coherent(dev->core_dev->device, crypto4xx_build_sdr() 420 dma_free_coherent(dev->core_dev->device, crypto4xx_destroy_sdr() 425 dma_free_coherent(dev->core_dev->device, crypto4xx_destroy_sdr() 461 spin_lock_irqsave(&dev->core_dev->lock, flags); crypto4xx_put_sd_to_sdr() 463 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_put_sd_to_sdr() 470 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_put_sd_to_sdr() 560 addr = dma_map_page(dev->core_dev->device, sg_page(sg), crypto4xx_copy_pkt_to_dst() 643 addr = dma_map_page(dev->core_dev->device, sg_page(dst), crypto4xx_ablkcipher_done() 722 static void crypto4xx_stop_all(struct crypto4xx_core_device *core_dev) crypto4xx_stop_all() argument 724 crypto4xx_destroy_pdr(core_dev->dev); crypto4xx_stop_all() 725 crypto4xx_destroy_gdr(core_dev->dev); crypto4xx_stop_all() 726 crypto4xx_destroy_sdr(core_dev->dev); crypto4xx_stop_all() 727 iounmap(core_dev->dev->ce_base); crypto4xx_stop_all() 728 kfree(core_dev->dev); crypto4xx_stop_all() 729 kfree(core_dev); crypto4xx_stop_all() 826 spin_lock_irqsave(&dev->core_dev->lock, flags); crypto4xx_build_pd() 830 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_build_pd() 839 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_build_pd() 849 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_build_pd() 852 spin_unlock_irqrestore(&dev->core_dev->lock, flags); crypto4xx_build_pd() 899 addr = dma_map_page(dev->core_dev->device, sg_page(sg), crypto4xx_build_pd() 913 pd->src = (u32)dma_map_page(dev->core_dev->device, sg_page(src), crypto4xx_build_pd() 939 pd->dest = (u32)dma_map_page(dev->core_dev->device, crypto4xx_build_pd() 1084 struct crypto4xx_core_device *core_dev = dev_get_drvdata(dev); crypto4xx_bh_tasklet_cb() local 1089 while (core_dev->dev->pdr_head != core_dev->dev->pdr_tail) { crypto4xx_bh_tasklet_cb() 1090 tail = core_dev->dev->pdr_tail; crypto4xx_bh_tasklet_cb() 1091 pd_uinfo = core_dev->dev->pdr_uinfo + crypto4xx_bh_tasklet_cb() 1093 pd = core_dev->dev->pdr + sizeof(struct ce_pd) * tail; crypto4xx_bh_tasklet_cb() 1098 crypto4xx_pd_done(core_dev->dev, tail); crypto4xx_bh_tasklet_cb() 1099 crypto4xx_put_pd_to_pdr(core_dev->dev, tail); crypto4xx_bh_tasklet_cb() 1114 struct crypto4xx_core_device *core_dev = dev_get_drvdata(dev); crypto4xx_ce_interrupt_handler() local 1116 if (core_dev->dev->ce_base == 0) crypto4xx_ce_interrupt_handler() 1120 core_dev->dev->ce_base + CRYPTO4XX_INT_CLR); crypto4xx_ce_interrupt_handler() 1121 tasklet_schedule(&core_dev->tasklet); crypto4xx_ce_interrupt_handler() 1163 struct crypto4xx_core_device *core_dev; crypto4xx_probe() local 1191 core_dev = kzalloc(sizeof(struct crypto4xx_core_device), GFP_KERNEL); crypto4xx_probe() 1192 if (!core_dev) crypto4xx_probe() 1195 dev_set_drvdata(dev, core_dev); crypto4xx_probe() 1196 core_dev->ofdev = ofdev; crypto4xx_probe() 1197 core_dev->dev = kzalloc(sizeof(struct crypto4xx_device), GFP_KERNEL); crypto4xx_probe() 1198 if (!core_dev->dev) crypto4xx_probe() 1201 core_dev->dev->core_dev = core_dev; crypto4xx_probe() 1202 core_dev->device = dev; crypto4xx_probe() 1203 spin_lock_init(&core_dev->lock); crypto4xx_probe() 1204 INIT_LIST_HEAD(&core_dev->dev->alg_list); crypto4xx_probe() 1205 rc = crypto4xx_build_pdr(core_dev->dev); crypto4xx_probe() 1209 rc = crypto4xx_build_gdr(core_dev->dev); crypto4xx_probe() 1213 rc = crypto4xx_build_sdr(core_dev->dev); crypto4xx_probe() 1218 tasklet_init(&core_dev->tasklet, crypto4xx_bh_tasklet_cb, crypto4xx_probe() 1222 core_dev->irq = irq_of_parse_and_map(ofdev->dev.of_node, 0); crypto4xx_probe() 1223 rc = request_irq(core_dev->irq, crypto4xx_ce_interrupt_handler, 0, crypto4xx_probe() 1224 core_dev->dev->name, dev); crypto4xx_probe() 1228 core_dev->dev->ce_base = of_iomap(ofdev->dev.of_node, 0); crypto4xx_probe() 1229 if (!core_dev->dev->ce_base) { crypto4xx_probe() 1236 crypto4xx_hw_init(core_dev->dev); crypto4xx_probe() 1239 rc = crypto4xx_register_alg(core_dev->dev, crypto4xx_alg, crypto4xx_probe() 1247 iounmap(core_dev->dev->ce_base); crypto4xx_probe() 1249 free_irq(core_dev->irq, dev); crypto4xx_probe() 1251 irq_dispose_mapping(core_dev->irq); crypto4xx_probe() 1252 tasklet_kill(&core_dev->tasklet); crypto4xx_probe() 1253 crypto4xx_destroy_sdr(core_dev->dev); crypto4xx_probe() 1255 crypto4xx_destroy_gdr(core_dev->dev); crypto4xx_probe() 1257 crypto4xx_destroy_pdr(core_dev->dev); crypto4xx_probe() 1259 kfree(core_dev->dev); crypto4xx_probe() 1261 kfree(core_dev); crypto4xx_probe() 1269 struct crypto4xx_core_device *core_dev = dev_get_drvdata(dev); crypto4xx_remove() local 1271 free_irq(core_dev->irq, dev); crypto4xx_remove() 1272 irq_dispose_mapping(core_dev->irq); crypto4xx_remove() 1274 tasklet_kill(&core_dev->tasklet); crypto4xx_remove() 1276 crypto4xx_unregister_alg(core_dev->dev); crypto4xx_remove() 1278 crypto4xx_stop_all(core_dev); crypto4xx_remove()
|