diff options
Diffstat (limited to 'drivers/crypto/amcc')
| -rw-r--r-- | drivers/crypto/amcc/crypto4xx_alg.c | 15 | ||||
| -rw-r--r-- | drivers/crypto/amcc/crypto4xx_core.c | 30 | ||||
| -rw-r--r-- | drivers/crypto/amcc/crypto4xx_sa.c | 2 | ||||
| -rw-r--r-- | drivers/crypto/amcc/crypto4xx_sa.h | 2 | 
4 files changed, 22 insertions, 27 deletions
diff --git a/drivers/crypto/amcc/crypto4xx_alg.c b/drivers/crypto/amcc/crypto4xx_alg.c index a33243c17b0..4afca396877 100644 --- a/drivers/crypto/amcc/crypto4xx_alg.c +++ b/drivers/crypto/amcc/crypto4xx_alg.c @@ -32,10 +32,10 @@  #include "crypto4xx_sa.h"  #include "crypto4xx_core.h" -void set_dynamic_sa_command_0(struct dynamic_sa_ctl *sa, u32 save_h, -			      u32 save_iv, u32 ld_h, u32 ld_iv, u32 hdr_proc, -			      u32 h, u32 c, u32 pad_type, u32 op_grp, u32 op, -			      u32 dir) +static void set_dynamic_sa_command_0(struct dynamic_sa_ctl *sa, u32 save_h, +				     u32 save_iv, u32 ld_h, u32 ld_iv, +				     u32 hdr_proc, u32 h, u32 c, u32 pad_type, +				     u32 op_grp, u32 op, u32 dir)  {  	sa->sa_command_0.w = 0;  	sa->sa_command_0.bf.save_hash_state = save_h; @@ -52,9 +52,10 @@ void set_dynamic_sa_command_0(struct dynamic_sa_ctl *sa, u32 save_h,  	sa->sa_command_0.bf.dir = dir;  } -void set_dynamic_sa_command_1(struct dynamic_sa_ctl *sa, u32 cm, u32 hmac_mc, -			      u32 cfb, u32 esn, u32 sn_mask, u32 mute, -			      u32 cp_pad, u32 cp_pay, u32 cp_hdr) +static void set_dynamic_sa_command_1(struct dynamic_sa_ctl *sa, u32 cm, +				     u32 hmac_mc, u32 cfb, u32 esn, +				     u32 sn_mask, u32 mute, u32 cp_pad, +				     u32 cp_pay, u32 cp_hdr)  {  	sa->sa_command_1.w = 0;  	sa->sa_command_1.bf.crypto_mode31 = (cm & 4) >> 2; diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c index 2b1baee525b..37f9cc98ba1 100644 --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c @@ -27,6 +27,9 @@  #include <linux/dma-mapping.h>  #include <linux/platform_device.h>  #include <linux/init.h> +#include <linux/module.h> +#include <linux/of_address.h> +#include <linux/of_irq.h>  #include <linux/of_platform.h>  #include <linux/slab.h>  #include <asm/dcr.h> @@ -51,6 +54,7 @@ static void crypto4xx_hw_init(struct crypto4xx_device *dev)  	union ce_io_threshold io_threshold;  	u32 rand_num;  	union ce_pe_dma_cfg pe_dma_cfg; +	u32 device_ctrl;  	writel(PPC4XX_BYTE_ORDER, dev->ce_base + CRYPTO4XX_BYTE_ORDER_CFG);  	/* setup pe dma, include reset sg, pdr and pe, then release reset */ @@ -84,7 +88,9 @@ static void crypto4xx_hw_init(struct crypto4xx_device *dev)  	writel(ring_size.w, dev->ce_base + CRYPTO4XX_RING_SIZE);  	ring_ctrl.w = 0;  	writel(ring_ctrl.w, dev->ce_base + CRYPTO4XX_RING_CTRL); -	writel(PPC4XX_DC_3DES_EN, dev->ce_base + CRYPTO4XX_DEVICE_CTRL); +	device_ctrl = readl(dev->ce_base + CRYPTO4XX_DEVICE_CTRL); +	device_ctrl |= PPC4XX_DC_3DES_EN; +	writel(device_ctrl, dev->ce_base + CRYPTO4XX_DEVICE_CTRL);  	writel(dev->gdr_pa, dev->ce_base + CRYPTO4XX_GATH_RING_BASE);  	writel(dev->sdr_pa, dev->ce_base + CRYPTO4XX_SCAT_RING_BASE);  	part_ring_size.w = 0; @@ -718,7 +724,6 @@ static void crypto4xx_stop_all(struct crypto4xx_core_device *core_dev)  	crypto4xx_destroy_pdr(core_dev->dev);  	crypto4xx_destroy_gdr(core_dev->dev);  	crypto4xx_destroy_sdr(core_dev->dev); -	dev_set_drvdata(core_dev->device, NULL);  	iounmap(core_dev->dev->ce_base);  	kfree(core_dev->dev);  	kfree(core_dev); @@ -1150,8 +1155,7 @@ struct crypto4xx_alg_common crypto4xx_alg[] = {  /**   * Module Initialization Routine   */ -static int __init crypto4xx_probe(struct platform_device *ofdev, -				  const struct of_device_id *match) +static int __init crypto4xx_probe(struct platform_device *ofdev)  {  	int rc;  	struct resource res; @@ -1224,6 +1228,7 @@ static int __init crypto4xx_probe(struct platform_device *ofdev,  	core_dev->dev->ce_base = of_iomap(ofdev->dev.of_node, 0);  	if (!core_dev->dev->ce_base) {  		dev_err(dev, "failed to of_iomap\n"); +		rc = -ENOMEM;  		goto err_iomap;  	} @@ -1242,9 +1247,9 @@ err_start_dev:  	iounmap(core_dev->dev->ce_base);  err_iomap:  	free_irq(core_dev->irq, dev); +err_request_irq:  	irq_dispose_mapping(core_dev->irq);  	tasklet_kill(&core_dev->tasklet); -err_request_irq:  	crypto4xx_destroy_sdr(core_dev->dev);  err_build_sdr:  	crypto4xx_destroy_gdr(core_dev->dev); @@ -1280,7 +1285,7 @@ static const struct of_device_id crypto4xx_match[] = {  	{ },  }; -static struct of_platform_driver crypto4xx_driver = { +static struct platform_driver crypto4xx_driver = {  	.driver = {  		.name = "crypto4xx",  		.owner = THIS_MODULE, @@ -1290,18 +1295,7 @@ static struct of_platform_driver crypto4xx_driver = {  	.remove		= crypto4xx_remove,  }; -static int __init crypto4xx_init(void) -{ -	return of_register_platform_driver(&crypto4xx_driver); -} - -static void __exit crypto4xx_exit(void) -{ -	of_unregister_platform_driver(&crypto4xx_driver); -} - -module_init(crypto4xx_init); -module_exit(crypto4xx_exit); +module_platform_driver(crypto4xx_driver);  MODULE_LICENSE("GPL");  MODULE_AUTHOR("James Hsiao <jhsiao@amcc.com>"); diff --git a/drivers/crypto/amcc/crypto4xx_sa.c b/drivers/crypto/amcc/crypto4xx_sa.c index 466fd94cd4a..de8a7a48775 100644 --- a/drivers/crypto/amcc/crypto4xx_sa.c +++ b/drivers/crypto/amcc/crypto4xx_sa.c @@ -17,7 +17,7 @@   * @file crypto4xx_sa.c   *   * This file implements the security context - * assoicate format. + * associate format.   */  #include <linux/kernel.h>  #include <linux/module.h> diff --git a/drivers/crypto/amcc/crypto4xx_sa.h b/drivers/crypto/amcc/crypto4xx_sa.h index 4b83ed7e557..1352d58d4e3 100644 --- a/drivers/crypto/amcc/crypto4xx_sa.h +++ b/drivers/crypto/amcc/crypto4xx_sa.h @@ -15,7 +15,7 @@   * GNU General Public License for more details.   *   * This file defines the security context - * assoicate format. + * associate format.   */  #ifndef __CRYPTO4XX_SA_H__  | 
