aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaud Ebalard <arno@natisbad.org>2015-06-18 09:46:29 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2015-06-19 10:18:05 -0400
commit7240425579b881a3e26ba62a1bca29b45d4bfadc (patch)
tree409dbfad329ac9f73f5a24cd76f940101ed2c454
parent0bf6948995f9f7c4b0ce062db793c205e921ee48 (diff)
crypto: marvell/cesa - add support for Kirkwood and Dove SoCs
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>
-rw-r--r--drivers/crypto/marvell/cesa.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/crypto/marvell/cesa.c b/drivers/crypto/marvell/cesa.c
index 8e5ea7218bb2..a432633bced4 100644
--- a/drivers/crypto/marvell/cesa.c
+++ b/drivers/crypto/marvell/cesa.c
@@ -215,6 +215,15 @@ static const struct mv_cesa_caps orion_caps = {
215 .has_tdma = false, 215 .has_tdma = false,
216}; 216};
217 217
218static const struct mv_cesa_caps kirkwood_caps = {
219 .nengines = 1,
220 .cipher_algs = orion_cipher_algs,
221 .ncipher_algs = ARRAY_SIZE(orion_cipher_algs),
222 .ahash_algs = orion_ahash_algs,
223 .nahash_algs = ARRAY_SIZE(orion_ahash_algs),
224 .has_tdma = true,
225};
226
218static const struct mv_cesa_caps armada_370_caps = { 227static const struct mv_cesa_caps armada_370_caps = {
219 .nengines = 1, 228 .nengines = 1,
220 .cipher_algs = armada_370_cipher_algs, 229 .cipher_algs = armada_370_cipher_algs,
@@ -235,6 +244,8 @@ static const struct mv_cesa_caps armada_xp_caps = {
235 244
236static const struct of_device_id mv_cesa_of_match_table[] = { 245static const struct of_device_id mv_cesa_of_match_table[] = {
237 { .compatible = "marvell,orion-crypto", .data = &orion_caps }, 246 { .compatible = "marvell,orion-crypto", .data = &orion_caps },
247 { .compatible = "marvell,kirkwood-crypto", .data = &kirkwood_caps },
248 { .compatible = "marvell,dove-crypto", .data = &kirkwood_caps },
238 { .compatible = "marvell,armada-370-crypto", .data = &armada_370_caps }, 249 { .compatible = "marvell,armada-370-crypto", .data = &armada_370_caps },
239 { .compatible = "marvell,armada-xp-crypto", .data = &armada_xp_caps }, 250 { .compatible = "marvell,armada-xp-crypto", .data = &armada_xp_caps },
240 { .compatible = "marvell,armada-375-crypto", .data = &armada_xp_caps }, 251 { .compatible = "marvell,armada-375-crypto", .data = &armada_xp_caps },
@@ -383,7 +394,7 @@ static int mv_cesa_probe(struct platform_device *pdev)
383 caps = match->data; 394 caps = match->data;
384 } 395 }
385 396
386 if (caps == &orion_caps && !allhwsupport) 397 if ((caps == &orion_caps || caps == &kirkwood_caps) && !allhwsupport)
387 return -ENOTSUPP; 398 return -ENOTSUPP;
388 399
389 cesa = devm_kzalloc(dev, sizeof(*cesa), GFP_KERNEL); 400 cesa = devm_kzalloc(dev, sizeof(*cesa), GFP_KERNEL);