void caam_prng_unregister(void *data)
{ if (caam_prng_alg.registered)
crypto_unregister_rng(&caam_prng_alg.rng);
}
int caam_prng_register(struct device *ctrldev)
{ struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
u32 rng_inst; int ret = 0;
/* Check for available RNG blocks before registration */ if (priv->era < 10)
rng_inst = (rd_reg32(&priv->jr[0]->perfmon.cha_num_ls) &
CHA_ID_LS_RNG_MASK) >> CHA_ID_LS_RNG_SHIFT; else
rng_inst = rd_reg32(&priv->jr[0]->vreg.rng) & CHA_VER_NUM_MASK;
if (!rng_inst) {
dev_dbg(ctrldev, "RNG block is not available... skipping registering algorithm\n"); return ret;
}
ret = crypto_register_rng(&caam_prng_alg.rng); if (ret) {
dev_err(ctrldev, "couldn't register rng crypto alg: %d\n",
ret); return ret;
}
caam_prng_alg.registered = true;
dev_info(ctrldev, "rng crypto API alg registered %s\n", caam_prng_alg.rng.base.cra_driver_name);
return0;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.18Bemerkung:
(vorverarbeitet am 2026-06-06)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.