crypto: marvell/cesa - add support for Kirkwood and Dove SoCs
authorArnaud Ebalard <arno@natisbad.org>
Thu, 18 Jun 2015 13:46:29 +0000 (15:46 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 19 Jun 2015 14:18:05 +0000 (22:18 +0800)
Add the Kirkwood and Dove SoC descriptions, and control the allhwsupport
module parameter to avoid probing the CESA IP when the old CESA driver is
enabled (unless it is explicitly requested to do so).

Signed-off-by: Arnaud Ebalard <arno@natisbad.org>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/marvell/cesa.c

index 8e5ea7218bb2173185b5ab5148810f9d4f823921..a432633bced43243780cf3318aa1f223a5ac9746 100644 (file)
@@ -215,6 +215,15 @@ static const struct mv_cesa_caps orion_caps = {
        .has_tdma = false,
 };
 
+static const struct mv_cesa_caps kirkwood_caps = {
+       .nengines = 1,
+       .cipher_algs = orion_cipher_algs,
+       .ncipher_algs = ARRAY_SIZE(orion_cipher_algs),
+       .ahash_algs = orion_ahash_algs,
+       .nahash_algs = ARRAY_SIZE(orion_ahash_algs),
+       .has_tdma = true,
+};
+
 static const struct mv_cesa_caps armada_370_caps = {
        .nengines = 1,
        .cipher_algs = armada_370_cipher_algs,
@@ -235,6 +244,8 @@ static const struct mv_cesa_caps armada_xp_caps = {
 
 static const struct of_device_id mv_cesa_of_match_table[] = {
        { .compatible = "marvell,orion-crypto", .data = &orion_caps },
+       { .compatible = "marvell,kirkwood-crypto", .data = &kirkwood_caps },
+       { .compatible = "marvell,dove-crypto", .data = &kirkwood_caps },
        { .compatible = "marvell,armada-370-crypto", .data = &armada_370_caps },
        { .compatible = "marvell,armada-xp-crypto", .data = &armada_xp_caps },
        { .compatible = "marvell,armada-375-crypto", .data = &armada_xp_caps },
@@ -383,7 +394,7 @@ static int mv_cesa_probe(struct platform_device *pdev)
                caps = match->data;
        }
 
-       if (caps == &orion_caps && !allhwsupport)
+       if ((caps == &orion_caps || caps == &kirkwood_caps) && !allhwsupport)
                return -ENOTSUPP;
 
        cesa = devm_kzalloc(dev, sizeof(*cesa), GFP_KERNEL);