| /linux/drivers/char/hw_random/ |
| H A D | cavium-rng-vf.c | 82 static int check_rng_health(struct cavium_rng *rng) in check_rng_health() argument 90 if (!rng->pf_regbase) in check_rng_health() 93 status = readq(rng->pf_regbase + HEALTH_STATUS_REG); in check_rng_health() 95 dev_err(&rng->pdev->dev, "HWRNG: Startup health test failed\n"); in check_rng_health() 110 cur_err = (cycles * 1000000000) / rng->clock_rate; /* In nanosec */ in check_rng_health() 116 rng->prev_error = 0; in check_rng_health() 117 rng->prev_time = 0; in check_rng_health() 121 if (rng->prev_error) { in check_rng_health() 125 time_elapsed = (cur_time - rng->prev_time) * 10; in check_rng_health() 126 time_elapsed += rng->prev_error; in check_rng_health() [all …]
|
| H A D | hisi-rng.c | 23 #define to_hisi_rng(p) container_of(p, struct hisi_rng, rng) 31 struct hwrng rng; member 34 static int hisi_rng_init(struct hwrng *rng) in hisi_rng_init() argument 36 struct hisi_rng *hrng = to_hisi_rng(rng); in hisi_rng_init() 57 static void hisi_rng_cleanup(struct hwrng *rng) in hisi_rng_cleanup() argument 59 struct hisi_rng *hrng = to_hisi_rng(rng); in hisi_rng_cleanup() 64 static int hisi_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in hisi_rng_read() argument 66 struct hisi_rng *hrng = to_hisi_rng(rng); in hisi_rng_read() 75 struct hisi_rng *rng; in hisi_rng_probe() local 78 rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); in hisi_rng_probe() [all …]
|
| H A D | xilinx-trng.c | 81 static void xtrng_softreset(struct xilinx_rng *rng) in xtrng_softreset() argument 83 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, in xtrng_softreset() 86 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, 0); in xtrng_softreset() 119 static int xtrng_collect_random_data(struct xilinx_rng *rng, u8 *rand_gen_buf, in xtrng_collect_random_data() argument 130 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSTART_MASK, in xtrng_collect_random_data() 133 ret = xtrng_readblock32(rng->rng_base, (__be32 *)rand_gen_buf, blocks, wait); in xtrng_collect_random_data() 144 ret = xtrng_readblock32(rng->rng_base, (__be32 *)randbuf, 1, wait); in xtrng_collect_random_data() 158 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, in xtrng_collect_random_data() 176 static void xtrng_enable_entropy(struct xilinx_rng *rng) in xtrng_enable_entropy() argument 178 iowrite32(TRNG_OSC_EN_VAL_MASK, rng->rng_base + TRNG_OSC_EN_OFFSET); in xtrng_enable_entropy() [all …]
|
| H A D | octeon-rng.c | 28 static int octeon_rng_init(struct hwrng *rng) in octeon_rng_init() argument 31 struct octeon_rng *p = container_of(rng, struct octeon_rng, ops); in octeon_rng_init() 40 static void octeon_rng_cleanup(struct hwrng *rng) in octeon_rng_cleanup() argument 43 struct octeon_rng *p = container_of(rng, struct octeon_rng, ops); in octeon_rng_cleanup() 50 static int octeon_rng_data_read(struct hwrng *rng, u32 *data) in octeon_rng_data_read() argument 52 struct octeon_rng *p = container_of(rng, struct octeon_rng, ops); in octeon_rng_data_read() 62 struct octeon_rng *rng; in octeon_rng_probe() local 71 rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); in octeon_rng_probe() 72 if (!rng) in octeon_rng_probe() 84 rng->control_status = devm_ioremap(&pdev->dev, in octeon_rng_probe() [all …]
|
| H A D | mxc-rnga.c | 56 struct hwrng rng; member 61 static int mxc_rnga_data_present(struct hwrng *rng, int wait) in mxc_rnga_data_present() argument 64 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_data_present() 77 static int mxc_rnga_data_read(struct hwrng *rng, u32 * data) in mxc_rnga_data_read() argument 81 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_data_read() 100 static int mxc_rnga_init(struct hwrng *rng) in mxc_rnga_init() argument 103 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_init() 123 static void mxc_rnga_cleanup(struct hwrng *rng) in mxc_rnga_cleanup() argument 126 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_cleanup() 144 mxc_rng->rng.name = "mxc-rnga"; in mxc_rnga_probe() [all …]
|
| H A D | pic32-rng.c | 29 struct hwrng rng; member 39 static int pic32_rng_init(struct hwrng *rng) in pic32_rng_init() argument 41 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_init() 48 static int pic32_rng_read(struct hwrng *rng, void *buf, size_t max, in pic32_rng_read() argument 51 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_read() 69 static void pic32_rng_cleanup(struct hwrng *rng) in pic32_rng_cleanup() argument 71 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_cleanup() 93 priv->rng.name = pdev->name; in pic32_rng_probe() 94 priv->rng.init = pic32_rng_init; in pic32_rng_probe() 95 priv->rng.read = pic32_rng_read; in pic32_rng_probe() [all …]
|
| H A D | ingenic-trng.c | 31 struct hwrng rng; member 34 static int ingenic_trng_init(struct hwrng *rng) in ingenic_trng_init() argument 36 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_init() 46 static void ingenic_trng_cleanup(struct hwrng *rng) in ingenic_trng_cleanup() argument 48 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_cleanup() 56 static int ingenic_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in ingenic_trng_read() argument 58 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_read() 95 trng->rng.name = pdev->name; in ingenic_trng_probe() 96 trng->rng.init = ingenic_trng_init; in ingenic_trng_probe() 97 trng->rng.cleanup = ingenic_trng_cleanup; in ingenic_trng_probe() [all …]
|
| H A D | iproc-rng200.c | 41 struct hwrng rng; member 45 #define to_rng_priv(rng) container_of(rng, struct iproc_rng200_dev, rng) argument 89 static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max, in iproc_rng200_read() argument 92 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_read() 150 static int iproc_rng200_init(struct hwrng *rng) in iproc_rng200_init() argument 152 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_init() 159 static void iproc_rng200_cleanup(struct hwrng *rng) in iproc_rng200_cleanup() argument 161 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_cleanup() 185 priv->rng.name = "iproc-rng200"; in iproc_rng200_probe() 186 priv->rng.read = iproc_rng200_read; in iproc_rng200_probe() [all …]
|
| H A D | bcm2835-rng.c | 31 struct hwrng rng; member 38 static inline struct bcm2835_rng_priv *to_rng_priv(struct hwrng *rng) in to_rng_priv() argument 40 return container_of(rng, struct bcm2835_rng_priv, rng); in to_rng_priv() 63 static int bcm2835_rng_read(struct hwrng *rng, void *buf, size_t max, in bcm2835_rng_read() argument 66 struct bcm2835_rng_priv *priv = to_rng_priv(rng); in bcm2835_rng_read() 73 hwrng_yield(rng); in bcm2835_rng_read() 86 static int bcm2835_rng_init(struct hwrng *rng) in bcm2835_rng_init() argument 88 struct bcm2835_rng_priv *priv = to_rng_priv(rng); in bcm2835_rng_init() 116 static void bcm2835_rng_cleanup(struct hwrng *rng) in bcm2835_rng_cleanup() argument 118 struct bcm2835_rng_priv *priv = to_rng_priv(rng); in bcm2835_rng_cleanup() [all …]
|
| H A D | ba431-rng.c | 41 struct hwrng rng; member 114 static int ba431_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in ba431_trng_read() argument 116 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_read() 154 static void ba431_trng_cleanup(struct hwrng *rng) in ba431_trng_cleanup() argument 156 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_cleanup() 162 static int ba431_trng_init(struct hwrng *rng) in ba431_trng_init() argument 164 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_init() 186 ba431->rng.name = pdev->name; in ba431_trng_probe() 187 ba431->rng.init = ba431_trng_init; in ba431_trng_probe() 188 ba431->rng.cleanup = ba431_trng_cleanup; in ba431_trng_probe() [all …]
|
| H A D | airoha-trng.c | 47 struct hwrng rng; member 75 static int airoha_trng_init(struct hwrng *rng) in airoha_trng_init() argument 77 struct airoha_trng *trng = container_of(rng, struct airoha_trng, rng); in airoha_trng_init() 124 static void airoha_trng_cleanup(struct hwrng *rng) in airoha_trng_cleanup() argument 126 struct airoha_trng *trng = container_of(rng, struct airoha_trng, rng); in airoha_trng_cleanup() 137 static int airoha_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in airoha_trng_read() argument 139 struct airoha_trng *trng = container_of(rng, struct airoha_trng, rng); in airoha_trng_read() 208 trng->rng.name = pdev->name; in airoha_trng_probe() 209 trng->rng.init = airoha_trng_init; in airoha_trng_probe() 210 trng->rng.cleanup = airoha_trng_cleanup; in airoha_trng_probe() [all …]
|
| H A D | meson-rng.c | 26 int (*read)(struct hwrng *rng, void *buf, size_t max, bool wait); 31 struct hwrng rng; member 35 static int meson_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in meson_rng_read() argument 38 container_of(rng, struct meson_rng_data, rng); in meson_rng_read() 59 static int meson_s4_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in meson_s4_rng_read() argument 62 container_of(rng, struct meson_rng_data, rng); in meson_s4_rng_read() 110 data->rng.name = pdev->name; in meson_rng_probe() 111 data->rng.read = priv->read; in meson_rng_probe() 115 return devm_hwrng_register(dev, &data->rng); in meson_rng_probe()
|
| H A D | exynos-trng.c | 77 struct hwrng rng; member 81 static int exynos_trng_do_read_reg(struct hwrng *rng, void *data, size_t max, in exynos_trng_do_read_reg() argument 84 struct exynos_trng_dev *trng = (struct exynos_trng_dev *)rng->priv; in exynos_trng_do_read_reg() 99 static int exynos_trng_do_read_smc(struct hwrng *rng, void *data, size_t max, in exynos_trng_do_read_smc() argument 132 static int exynos_trng_init_reg(struct hwrng *rng) in exynos_trng_init_reg() argument 134 struct exynos_trng_dev *trng = (struct exynos_trng_dev *)rng->priv; in exynos_trng_init_reg() 165 static int exynos_trng_init_smc(struct hwrng *rng) in exynos_trng_init_smc() argument 167 struct exynos_trng_dev *trng = (struct exynos_trng_dev *)rng->priv; in exynos_trng_init_smc() 197 trng->rng.name = devm_kstrdup(&pdev->dev, dev_name(&pdev->dev), in exynos_trng_probe() 199 if (!trng->rng.name) in exynos_trng_probe() [all …]
|
| H A D | imx-rngc.c | 66 struct hwrng rng; member 124 static int imx_rngc_read(struct hwrng *rng, void *data, size_t max, bool wait) in imx_rngc_read() argument 126 struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng); in imx_rngc_read() 176 static int imx_rngc_init(struct hwrng *rng) in imx_rngc_init() argument 178 struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng); in imx_rngc_init() 233 static void imx_rngc_cleanup(struct hwrng *rng) in imx_rngc_cleanup() argument 235 struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng); in imx_rngc_cleanup() 284 rngc->rng.name = pdev->name; in imx_rngc_probe() 285 rngc->rng.init = imx_rngc_init; in imx_rngc_probe() 286 rngc->rng.read = imx_rngc_read; in imx_rngc_probe() [all …]
|
| H A D | pasemi-rng.c | 32 static int pasemi_rng_data_present(struct hwrng *rng, int wait) in pasemi_rng_data_present() argument 34 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_data_present() 47 static int pasemi_rng_data_read(struct hwrng *rng, u32 *data) in pasemi_rng_data_read() argument 49 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_data_read() 54 static int pasemi_rng_init(struct hwrng *rng) in pasemi_rng_init() argument 56 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_init() 66 static void pasemi_rng_cleanup(struct hwrng *rng) in pasemi_rng_cleanup() argument 68 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_cleanup()
|
| H A D | xiphera-trng.c | 31 struct hwrng rng; member 34 static int xiphera_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in xiphera_trng_read() argument 36 struct xiphera_trng *trng = container_of(rng, struct xiphera_trng, rng); in xiphera_trng_read() 113 trng->rng.name = pdev->name; in xiphera_trng_probe() 114 trng->rng.read = xiphera_trng_read; in xiphera_trng_probe() 115 trng->rng.quality = 900; in xiphera_trng_probe() 117 ret = devm_hwrng_register(dev, &trng->rng); in xiphera_trng_probe()
|
| H A D | mpfs-rng.c | 24 struct hwrng rng; member 27 static int mpfs_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in mpfs_rng_read() argument 29 struct mpfs_rng *rng_priv = container_of(rng, struct mpfs_rng, rng); in mpfs_rng_read() 79 rng_priv->rng.read = mpfs_rng_read; in mpfs_rng_probe() 80 rng_priv->rng.name = pdev->name; in mpfs_rng_probe() 82 ret = devm_hwrng_register(&pdev->dev, &rng_priv->rng); in mpfs_rng_probe()
|
| H A D | histb-rng.c | 24 struct hwrng rng; member 59 static int histb_rng_read(struct hwrng *rng, void *data, size_t max, bool wait) in histb_rng_read() argument 61 struct histb_rng_priv *priv = container_of(rng, typeof(*priv), rng); in histb_rng_read() 140 priv->rng.name = pdev->name; in histb_rng_probe() 141 priv->rng.read = histb_rng_read; in histb_rng_probe() 142 ret = devm_hwrng_register(dev, &priv->rng); in histb_rng_probe()
|
| H A D | atmel-rng.c | 38 struct hwrng rng; member 55 static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max, in atmel_trng_read() argument 58 struct atmel_trng *trng = container_of(rng, struct atmel_trng, rng); in atmel_trng_read() 137 trng->rng.name = pdev->name; in atmel_trng_probe() 138 trng->rng.read = atmel_trng_read; in atmel_trng_probe() 151 ret = devm_hwrng_register(&pdev->dev, &trng->rng); in atmel_trng_probe()
|
| H A D | via-rng.c | 87 static int via_rng_data_present(struct hwrng *rng, int wait) in via_rng_data_present() argument 116 rng->priv = *via_rng_datum; in via_rng_data_present() 120 static int via_rng_data_read(struct hwrng *rng, u32 *data) in via_rng_data_read() argument 122 u32 via_rng_datum = (u32)rng->priv; in via_rng_data_read() 129 static int via_rng_init(struct hwrng *rng) in via_rng_init() argument
|
| H A D | intel-rng.c | 167 static int intel_rng_data_present(struct hwrng *rng, int wait) in intel_rng_data_present() argument 169 void __iomem *mem = (void __iomem *)rng->priv; in intel_rng_data_present() 182 static int intel_rng_data_read(struct hwrng *rng, u32 *data) in intel_rng_data_read() argument 184 void __iomem *mem = (void __iomem *)rng->priv; in intel_rng_data_read() 191 static int intel_rng_init(struct hwrng *rng) in intel_rng_init() argument 193 void __iomem *mem = (void __iomem *)rng->priv; in intel_rng_init() 210 static void intel_rng_cleanup(struct hwrng *rng) in intel_rng_cleanup() argument 212 void __iomem *mem = (void __iomem *)rng->priv; in intel_rng_cleanup()
|
| /linux/arch/powerpc/platforms/powernv/ |
| H A D | rng.c | 32 static unsigned long rng_whiten(struct pnv_rng *rng, unsigned long val) in rng_whiten() argument 44 val ^= rng->mask; in rng_whiten() 47 rng->mask = (rng->mask << 1) | (parity & 1); in rng_whiten() 86 struct pnv_rng *rng; in pnv_get_random_long() local 89 rng = get_cpu_var(pnv_rng); in pnv_get_random_long() 90 *v = rng_whiten(rng, in_be64(rng->regs)); in pnv_get_random_long() 91 put_cpu_var(rng); in pnv_get_random_long() 93 rng = raw_cpu_read(pnv_rng); in pnv_get_random_long() 94 *v = rng_whiten(rng, __raw_rm_readq(rng->regs_real)); in pnv_get_random_long() 100 static __init void rng_init_per_cpu(struct pnv_rng *rng, in rng_init_per_cpu() argument [all …]
|
| /linux/drivers/crypto/caam/ |
| H A D | caamrng.c | 38 struct hwrng rng; member 147 static int caam_read(struct hwrng *rng, void *dst, size_t max, bool wait) in caam_read() argument 149 struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng); in caam_read() 166 static void caam_cleanup(struct hwrng *rng) in caam_cleanup() argument 168 struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng); in caam_cleanup() 176 static inline void test_len(struct hwrng *rng, size_t len, bool wait) in test_len() argument 180 struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng); in test_len() 188 read_len = rng->read(rng, buf, len, wait); in test_len() 207 static inline void test_mode_once(struct hwrng *rng, bool wait) in test_mode_once() argument 209 test_len(rng, 32, wait); in test_mode_once() [all …]
|
| /linux/drivers/crypto/amcc/ |
| H A D | crypto4xx_trng.c | 28 static int ppc4xx_trng_data_present(struct hwrng *rng, int wait) in ppc4xx_trng_data_present() argument 30 struct crypto4xx_device *dev = (void *)rng->priv; in ppc4xx_trng_data_present() 45 static int ppc4xx_trng_data_read(struct hwrng *rng, u32 *data) in ppc4xx_trng_data_read() argument 47 struct crypto4xx_device *dev = (void *)rng->priv; in ppc4xx_trng_data_read() 75 struct hwrng *rng = NULL; in ppc4xx_trng_probe() local 90 rng = kzalloc_obj(*rng); in ppc4xx_trng_probe() 91 if (!rng) in ppc4xx_trng_probe() 94 rng->name = KBUILD_MODNAME; in ppc4xx_trng_probe() 95 rng->data_present = ppc4xx_trng_data_present; in ppc4xx_trng_probe() 96 rng->data_read = ppc4xx_trng_data_read; in ppc4xx_trng_probe() [all …]
|
| /linux/drivers/firmware/efi/libstub/ |
| H A D | random.c | 43 efi_rng_protocol_t *rng = NULL; in efi_get_random_bytes() local 45 status = efi_bs_call(locate_protocol, &rng_proto, NULL, (void **)&rng); in efi_get_random_bytes() 49 return efi_call_proto(rng, get_rng, NULL, size, out); in efi_get_random_bytes() 73 efi_rng_protocol_t *rng = NULL; in efi_random_get_seed() local 76 status = efi_bs_call(locate_protocol, &rng_proto, NULL, (void **)&rng); in efi_random_get_seed() 113 if (rng) { in efi_random_get_seed() 114 status = efi_call_proto(rng, get_rng, &rng_algo_raw, in efi_random_get_seed() 122 status = efi_call_proto(rng, get_rng, NULL, in efi_random_get_seed()
|