Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 272269
b: refs/heads/master
c: c3f4200
h: refs/heads/master
i:
  272267: 9c618ae
v: v3
  • Loading branch information
Jamie Iles authored and Herbert Xu committed Aug 10, 2011
1 parent dbbdaf0 commit 0d6ca78
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 61 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c39cc377f9168e24d58f82419af9595226fdc4ff
refs/heads/master: c3f4200f57c0efe05b15547f42edac0fd023da17
93 changes: 33 additions & 60 deletions trunk/drivers/crypto/picoxcell_crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -1657,25 +1657,38 @@ static struct spacc_alg l2_engine_algs[] = {
},
};

static int __devinit spacc_probe(struct platform_device *pdev,
unsigned max_ctxs, size_t cipher_pg_sz,
size_t hash_pg_sz, size_t fifo_sz,
struct spacc_alg *algs, size_t num_algs)
static int __devinit spacc_probe(struct platform_device *pdev)
{
int i, err, ret = -EINVAL;
struct resource *mem, *irq;
const struct platform_device_id *platid = platform_get_device_id(pdev);
struct spacc_engine *engine = devm_kzalloc(&pdev->dev, sizeof(*engine),
GFP_KERNEL);
if (!engine)
return -ENOMEM;

engine->max_ctxs = max_ctxs;
engine->cipher_pg_sz = cipher_pg_sz;
engine->hash_pg_sz = hash_pg_sz;
engine->fifo_sz = fifo_sz;
engine->algs = algs;
engine->num_algs = num_algs;
engine->name = dev_name(&pdev->dev);
if (!platid)
return -EINVAL;

if (!strcmp(platid->name, "picoxcell-ipsec")) {
engine->max_ctxs = SPACC_CRYPTO_IPSEC_MAX_CTXS;
engine->cipher_pg_sz = SPACC_CRYPTO_IPSEC_CIPHER_PG_SZ;
engine->hash_pg_sz = SPACC_CRYPTO_IPSEC_HASH_PG_SZ;
engine->fifo_sz = SPACC_CRYPTO_IPSEC_FIFO_SZ;
engine->algs = ipsec_engine_algs;
engine->num_algs = ARRAY_SIZE(ipsec_engine_algs);
} else if (!strcmp(platid->name, "picoxcell-l2")) {
engine->max_ctxs = SPACC_CRYPTO_L2_MAX_CTXS;
engine->cipher_pg_sz = SPACC_CRYPTO_L2_CIPHER_PG_SZ;
engine->hash_pg_sz = SPACC_CRYPTO_L2_HASH_PG_SZ;
engine->fifo_sz = SPACC_CRYPTO_L2_FIFO_SZ;
engine->algs = l2_engine_algs;
engine->num_algs = ARRAY_SIZE(l2_engine_algs);
} else {
return -EINVAL;
}

engine->name = dev_name(&pdev->dev);

mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
Expand Down Expand Up @@ -1800,72 +1813,32 @@ static int __devexit spacc_remove(struct platform_device *pdev)
return 0;
}

static int __devinit ipsec_probe(struct platform_device *pdev)
{
return spacc_probe(pdev, SPACC_CRYPTO_IPSEC_MAX_CTXS,
SPACC_CRYPTO_IPSEC_CIPHER_PG_SZ,
SPACC_CRYPTO_IPSEC_HASH_PG_SZ,
SPACC_CRYPTO_IPSEC_FIFO_SZ, ipsec_engine_algs,
ARRAY_SIZE(ipsec_engine_algs));
}

static struct platform_driver ipsec_driver = {
.probe = ipsec_probe,
.remove = __devexit_p(spacc_remove),
.driver = {
.name = "picoxcell-ipsec",
#ifdef CONFIG_PM
.pm = &spacc_pm_ops,
#endif /* CONFIG_PM */
},
static const struct platform_device_id spacc_id_table[] = {
{ "picochip,spacc-ipsec", },
{ "picochip,spacc-l2", },
};

static int __devinit l2_probe(struct platform_device *pdev)
{
return spacc_probe(pdev, SPACC_CRYPTO_L2_MAX_CTXS,
SPACC_CRYPTO_L2_CIPHER_PG_SZ,
SPACC_CRYPTO_L2_HASH_PG_SZ, SPACC_CRYPTO_L2_FIFO_SZ,
l2_engine_algs, ARRAY_SIZE(l2_engine_algs));
}

static struct platform_driver l2_driver = {
.probe = l2_probe,
static struct platform_driver spacc_driver = {
.probe = spacc_probe,
.remove = __devexit_p(spacc_remove),
.driver = {
.name = "picoxcell-l2",
.name = "picochip,spacc",
#ifdef CONFIG_PM
.pm = &spacc_pm_ops,
#endif /* CONFIG_PM */
},
.id_table = spacc_id_table,
};

static int __init spacc_init(void)
{
int ret = platform_driver_register(&ipsec_driver);
if (ret) {
pr_err("failed to register ipsec spacc driver");
goto out;
}

ret = platform_driver_register(&l2_driver);
if (ret) {
pr_err("failed to register l2 spacc driver");
goto l2_failed;
}

return 0;

l2_failed:
platform_driver_unregister(&ipsec_driver);
out:
return ret;
return platform_driver_register(&spacc_driver);
}
module_init(spacc_init);

static void __exit spacc_exit(void)
{
platform_driver_unregister(&ipsec_driver);
platform_driver_unregister(&l2_driver);
platform_driver_unregister(&spacc_driver);
}
module_exit(spacc_exit);

Expand Down

0 comments on commit 0d6ca78

Please sign in to comment.