Commit 6d55c4a2 authored by Corentin Labbe's avatar Corentin Labbe Committed by Herbert Xu

crypto: rockchip - rewrite type

Instead of using a custom type for classify algorithms, let's just use
already defined ones.
And let's made a bit more verbose about what is registered.
Reviewed-by: default avatarJohn Keeping <john@metanate.com>
Signed-off-by: default avatarCorentin Labbe <clabbe@baylibre.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 57d67c6e
...@@ -102,12 +102,22 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info) ...@@ -102,12 +102,22 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)
for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) { for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
rk_cipher_algs[i]->dev = crypto_info; rk_cipher_algs[i]->dev = crypto_info;
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER) switch (rk_cipher_algs[i]->type) {
err = crypto_register_skcipher( case CRYPTO_ALG_TYPE_SKCIPHER:
&rk_cipher_algs[i]->alg.skcipher); dev_info(crypto_info->dev, "Register %s as %s\n",
else rk_cipher_algs[i]->alg.skcipher.base.cra_name,
err = crypto_register_ahash( rk_cipher_algs[i]->alg.skcipher.base.cra_driver_name);
&rk_cipher_algs[i]->alg.hash); err = crypto_register_skcipher(&rk_cipher_algs[i]->alg.skcipher);
break;
case CRYPTO_ALG_TYPE_AHASH:
dev_info(crypto_info->dev, "Register %s as %s\n",
rk_cipher_algs[i]->alg.hash.halg.base.cra_name,
rk_cipher_algs[i]->alg.hash.halg.base.cra_driver_name);
err = crypto_register_ahash(&rk_cipher_algs[i]->alg.hash);
break;
default:
dev_err(crypto_info->dev, "unknown algorithm\n");
}
if (err) if (err)
goto err_cipher_algs; goto err_cipher_algs;
} }
...@@ -115,7 +125,7 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info) ...@@ -115,7 +125,7 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)
err_cipher_algs: err_cipher_algs:
for (k = 0; k < i; k++) { for (k = 0; k < i; k++) {
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER) if (rk_cipher_algs[i]->type == CRYPTO_ALG_TYPE_SKCIPHER)
crypto_unregister_skcipher(&rk_cipher_algs[k]->alg.skcipher); crypto_unregister_skcipher(&rk_cipher_algs[k]->alg.skcipher);
else else
crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash); crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
...@@ -128,7 +138,7 @@ static void rk_crypto_unregister(void) ...@@ -128,7 +138,7 @@ static void rk_crypto_unregister(void)
unsigned int i; unsigned int i;
for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) { for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER) if (rk_cipher_algs[i]->type == CRYPTO_ALG_TYPE_SKCIPHER)
crypto_unregister_skcipher(&rk_cipher_algs[i]->alg.skcipher); crypto_unregister_skcipher(&rk_cipher_algs[i]->alg.skcipher);
else else
crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash); crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
......
...@@ -232,18 +232,13 @@ struct rk_cipher_rctx { ...@@ -232,18 +232,13 @@ struct rk_cipher_rctx {
struct skcipher_request fallback_req; // keep at the end struct skcipher_request fallback_req; // keep at the end
}; };
enum alg_type {
ALG_TYPE_HASH,
ALG_TYPE_CIPHER,
};
struct rk_crypto_tmp { struct rk_crypto_tmp {
u32 type;
struct rk_crypto_info *dev; struct rk_crypto_info *dev;
union { union {
struct skcipher_alg skcipher; struct skcipher_alg skcipher;
struct ahash_alg hash; struct ahash_alg hash;
} alg; } alg;
enum alg_type type;
}; };
extern struct rk_crypto_tmp rk_ecb_aes_alg; extern struct rk_crypto_tmp rk_ecb_aes_alg;
......
...@@ -352,7 +352,7 @@ static void rk_cra_hash_exit(struct crypto_tfm *tfm) ...@@ -352,7 +352,7 @@ static void rk_cra_hash_exit(struct crypto_tfm *tfm)
} }
struct rk_crypto_tmp rk_ahash_sha1 = { struct rk_crypto_tmp rk_ahash_sha1 = {
.type = ALG_TYPE_HASH, .type = CRYPTO_ALG_TYPE_AHASH,
.alg.hash = { .alg.hash = {
.init = rk_ahash_init, .init = rk_ahash_init,
.update = rk_ahash_update, .update = rk_ahash_update,
...@@ -382,7 +382,7 @@ struct rk_crypto_tmp rk_ahash_sha1 = { ...@@ -382,7 +382,7 @@ struct rk_crypto_tmp rk_ahash_sha1 = {
}; };
struct rk_crypto_tmp rk_ahash_sha256 = { struct rk_crypto_tmp rk_ahash_sha256 = {
.type = ALG_TYPE_HASH, .type = CRYPTO_ALG_TYPE_AHASH,
.alg.hash = { .alg.hash = {
.init = rk_ahash_init, .init = rk_ahash_init,
.update = rk_ahash_update, .update = rk_ahash_update,
...@@ -412,7 +412,7 @@ struct rk_crypto_tmp rk_ahash_sha256 = { ...@@ -412,7 +412,7 @@ struct rk_crypto_tmp rk_ahash_sha256 = {
}; };
struct rk_crypto_tmp rk_ahash_md5 = { struct rk_crypto_tmp rk_ahash_md5 = {
.type = ALG_TYPE_HASH, .type = CRYPTO_ALG_TYPE_AHASH,
.alg.hash = { .alg.hash = {
.init = rk_ahash_init, .init = rk_ahash_init,
.update = rk_ahash_update, .update = rk_ahash_update,
......
...@@ -468,7 +468,7 @@ static void rk_ablk_exit_tfm(struct crypto_skcipher *tfm) ...@@ -468,7 +468,7 @@ static void rk_ablk_exit_tfm(struct crypto_skcipher *tfm)
} }
struct rk_crypto_tmp rk_ecb_aes_alg = { struct rk_crypto_tmp rk_ecb_aes_alg = {
.type = ALG_TYPE_CIPHER, .type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = { .alg.skcipher = {
.base.cra_name = "ecb(aes)", .base.cra_name = "ecb(aes)",
.base.cra_driver_name = "ecb-aes-rk", .base.cra_driver_name = "ecb-aes-rk",
...@@ -490,7 +490,7 @@ struct rk_crypto_tmp rk_ecb_aes_alg = { ...@@ -490,7 +490,7 @@ struct rk_crypto_tmp rk_ecb_aes_alg = {
}; };
struct rk_crypto_tmp rk_cbc_aes_alg = { struct rk_crypto_tmp rk_cbc_aes_alg = {
.type = ALG_TYPE_CIPHER, .type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = { .alg.skcipher = {
.base.cra_name = "cbc(aes)", .base.cra_name = "cbc(aes)",
.base.cra_driver_name = "cbc-aes-rk", .base.cra_driver_name = "cbc-aes-rk",
...@@ -513,7 +513,7 @@ struct rk_crypto_tmp rk_cbc_aes_alg = { ...@@ -513,7 +513,7 @@ struct rk_crypto_tmp rk_cbc_aes_alg = {
}; };
struct rk_crypto_tmp rk_ecb_des_alg = { struct rk_crypto_tmp rk_ecb_des_alg = {
.type = ALG_TYPE_CIPHER, .type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = { .alg.skcipher = {
.base.cra_name = "ecb(des)", .base.cra_name = "ecb(des)",
.base.cra_driver_name = "ecb-des-rk", .base.cra_driver_name = "ecb-des-rk",
...@@ -535,7 +535,7 @@ struct rk_crypto_tmp rk_ecb_des_alg = { ...@@ -535,7 +535,7 @@ struct rk_crypto_tmp rk_ecb_des_alg = {
}; };
struct rk_crypto_tmp rk_cbc_des_alg = { struct rk_crypto_tmp rk_cbc_des_alg = {
.type = ALG_TYPE_CIPHER, .type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = { .alg.skcipher = {
.base.cra_name = "cbc(des)", .base.cra_name = "cbc(des)",
.base.cra_driver_name = "cbc-des-rk", .base.cra_driver_name = "cbc-des-rk",
...@@ -558,7 +558,7 @@ struct rk_crypto_tmp rk_cbc_des_alg = { ...@@ -558,7 +558,7 @@ struct rk_crypto_tmp rk_cbc_des_alg = {
}; };
struct rk_crypto_tmp rk_ecb_des3_ede_alg = { struct rk_crypto_tmp rk_ecb_des3_ede_alg = {
.type = ALG_TYPE_CIPHER, .type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = { .alg.skcipher = {
.base.cra_name = "ecb(des3_ede)", .base.cra_name = "ecb(des3_ede)",
.base.cra_driver_name = "ecb-des3-ede-rk", .base.cra_driver_name = "ecb-des3-ede-rk",
...@@ -580,7 +580,7 @@ struct rk_crypto_tmp rk_ecb_des3_ede_alg = { ...@@ -580,7 +580,7 @@ struct rk_crypto_tmp rk_ecb_des3_ede_alg = {
}; };
struct rk_crypto_tmp rk_cbc_des3_ede_alg = { struct rk_crypto_tmp rk_cbc_des3_ede_alg = {
.type = ALG_TYPE_CIPHER, .type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = { .alg.skcipher = {
.base.cra_name = "cbc(des3_ede)", .base.cra_name = "cbc(des3_ede)",
.base.cra_driver_name = "cbc-des3-ede-rk", .base.cra_driver_name = "cbc-des3-ede-rk",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment