Lines Matching refs:crypto_info
262 static int rk_crypto_register(struct rk_crypto_info *crypto_info) in rk_crypto_register() argument
268 rk_cipher_algs[i]->dev = crypto_info; in rk_crypto_register()
304 struct rk_crypto_info *crypto_info = data; in rk_crypto_action() local
306 reset_control_assert(crypto_info->rst); in rk_crypto_action()
319 struct rk_crypto_info *crypto_info; in rk_crypto_probe() local
322 crypto_info = devm_kzalloc(&pdev->dev, in rk_crypto_probe()
323 sizeof(*crypto_info), GFP_KERNEL); in rk_crypto_probe()
324 if (!crypto_info) { in rk_crypto_probe()
329 crypto_info->rst = devm_reset_control_get(dev, "crypto-rst"); in rk_crypto_probe()
330 if (IS_ERR(crypto_info->rst)) { in rk_crypto_probe()
331 err = PTR_ERR(crypto_info->rst); in rk_crypto_probe()
335 reset_control_assert(crypto_info->rst); in rk_crypto_probe()
337 reset_control_deassert(crypto_info->rst); in rk_crypto_probe()
339 err = devm_add_action_or_reset(dev, rk_crypto_action, crypto_info); in rk_crypto_probe()
343 spin_lock_init(&crypto_info->lock); in rk_crypto_probe()
346 crypto_info->reg = devm_ioremap_resource(&pdev->dev, res); in rk_crypto_probe()
347 if (IS_ERR(crypto_info->reg)) { in rk_crypto_probe()
348 err = PTR_ERR(crypto_info->reg); in rk_crypto_probe()
352 crypto_info->aclk = devm_clk_get(&pdev->dev, "aclk"); in rk_crypto_probe()
353 if (IS_ERR(crypto_info->aclk)) { in rk_crypto_probe()
354 err = PTR_ERR(crypto_info->aclk); in rk_crypto_probe()
358 crypto_info->hclk = devm_clk_get(&pdev->dev, "hclk"); in rk_crypto_probe()
359 if (IS_ERR(crypto_info->hclk)) { in rk_crypto_probe()
360 err = PTR_ERR(crypto_info->hclk); in rk_crypto_probe()
364 crypto_info->sclk = devm_clk_get(&pdev->dev, "sclk"); in rk_crypto_probe()
365 if (IS_ERR(crypto_info->sclk)) { in rk_crypto_probe()
366 err = PTR_ERR(crypto_info->sclk); in rk_crypto_probe()
370 crypto_info->dmaclk = devm_clk_get(&pdev->dev, "apb_pclk"); in rk_crypto_probe()
371 if (IS_ERR(crypto_info->dmaclk)) { in rk_crypto_probe()
372 err = PTR_ERR(crypto_info->dmaclk); in rk_crypto_probe()
376 crypto_info->irq = platform_get_irq(pdev, 0); in rk_crypto_probe()
377 if (crypto_info->irq < 0) { in rk_crypto_probe()
378 dev_warn(crypto_info->dev, in rk_crypto_probe()
380 err = crypto_info->irq; in rk_crypto_probe()
384 err = devm_request_irq(&pdev->dev, crypto_info->irq, in rk_crypto_probe()
389 dev_err(crypto_info->dev, "irq request failed.\n"); in rk_crypto_probe()
393 crypto_info->dev = &pdev->dev; in rk_crypto_probe()
394 platform_set_drvdata(pdev, crypto_info); in rk_crypto_probe()
396 tasklet_init(&crypto_info->queue_task, in rk_crypto_probe()
397 rk_crypto_queue_task_cb, (unsigned long)crypto_info); in rk_crypto_probe()
398 tasklet_init(&crypto_info->done_task, in rk_crypto_probe()
399 rk_crypto_done_task_cb, (unsigned long)crypto_info); in rk_crypto_probe()
400 crypto_init_queue(&crypto_info->queue, 50); in rk_crypto_probe()
402 crypto_info->enable_clk = rk_crypto_enable_clk; in rk_crypto_probe()
403 crypto_info->disable_clk = rk_crypto_disable_clk; in rk_crypto_probe()
404 crypto_info->load_data = rk_load_data; in rk_crypto_probe()
405 crypto_info->unload_data = rk_unload_data; in rk_crypto_probe()
406 crypto_info->enqueue = rk_crypto_enqueue; in rk_crypto_probe()
407 crypto_info->busy = false; in rk_crypto_probe()
409 err = rk_crypto_register(crypto_info); in rk_crypto_probe()
419 tasklet_kill(&crypto_info->queue_task); in rk_crypto_probe()
420 tasklet_kill(&crypto_info->done_task); in rk_crypto_probe()