hw_random: make msm_rng driver compatible for kernel version 4.4
Updated APIs used in msm_rng to be built on kernel version 4.4. Acked-by: Shabnam Aboughadareh <shabnama@qti.qualcomm.com> Signed-off-by: Zhen Kong <zkong@codeaurora.org>
This commit is contained in:
parent
df53b6783a
commit
3684d72b85
2 changed files with 14 additions and 17 deletions
|
@ -335,7 +335,7 @@ config HW_RANDOM_TPM
|
|||
|
||||
config HW_RANDOM_MSM_LEGACY
|
||||
tristate "Qualcomm MSM Random Number Generator support (LEGACY)"
|
||||
depends on HW_RANDOM && ARCH_MSM
|
||||
depends on HW_RANDOM && ARCH_QCOM
|
||||
select CRYPTO_AES
|
||||
select CRYPTO_ECB
|
||||
default n
|
||||
|
@ -351,7 +351,7 @@ config HW_RANDOM_MSM_LEGACY
|
|||
config HW_RANDOM_MSM
|
||||
tristate "Qualcomm SoCs Random Number Generator support"
|
||||
depends on HW_RANDOM && ARCH_QCOM
|
||||
default HW_RANDOM
|
||||
default n
|
||||
---help---
|
||||
This driver provides kernel-side support for the Random Number
|
||||
Generator hardware found on Qualcomm SoCs.
|
||||
|
|
|
@ -375,7 +375,8 @@ static int msm_rng_remove(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int qrng_get_random(struct crypto_rng *tfm, u8 *rdata,
|
||||
static int qrng_get_random(struct crypto_rng *tfm, const u8 *src,
|
||||
unsigned int slen, u8 *rdata,
|
||||
unsigned int dlen)
|
||||
{
|
||||
int sizeread = 0;
|
||||
|
@ -410,27 +411,23 @@ err_exit:
|
|||
|
||||
}
|
||||
|
||||
static int qrng_reset(struct crypto_rng *tfm, u8 *seed, unsigned int slen)
|
||||
static int qrng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct crypto_alg rng_alg = {
|
||||
static struct rng_alg rng_algs[] = { {
|
||||
.generate = qrng_get_random,
|
||||
.seed = qrng_reset,
|
||||
.seedsize = 0,
|
||||
.base = {
|
||||
.cra_name = "qrng",
|
||||
.cra_driver_name = "fips_hw_qrng",
|
||||
.cra_priority = 300,
|
||||
.cra_flags = CRYPTO_ALG_TYPE_RNG,
|
||||
.cra_ctxsize = 0,
|
||||
.cra_type = &crypto_rng_type,
|
||||
.cra_module = THIS_MODULE,
|
||||
.cra_u = {
|
||||
.rng = {
|
||||
.rng_make_random = qrng_get_random,
|
||||
.rng_reset = qrng_reset,
|
||||
.seedsize = 0,
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
} };
|
||||
|
||||
static struct of_device_id qrng_match[] = {
|
||||
{ .compatible = "qcom,msm-rng",
|
||||
|
@ -459,7 +456,7 @@ static int __init msm_rng_init(void)
|
|||
__func__, ret);
|
||||
goto err_exit;
|
||||
}
|
||||
ret = crypto_register_alg(&rng_alg);
|
||||
ret = crypto_register_rngs(rng_algs, ARRAY_SIZE(rng_algs));
|
||||
if (ret) {
|
||||
pr_err("%s: crypto_register_algs error:%d\n",
|
||||
__func__, ret);
|
||||
|
@ -474,7 +471,7 @@ module_init(msm_rng_init);
|
|||
|
||||
static void __exit msm_rng_exit(void)
|
||||
{
|
||||
crypto_unregister_alg(&rng_alg);
|
||||
crypto_unregister_rngs(rng_algs, ARRAY_SIZE(rng_algs));
|
||||
platform_driver_unregister(&rng_driver);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue