Home
last modified time | relevance | path

Searched refs:rng (Results 1 – 25 of 221) sorted by relevance

123456789

/linux/drivers/char/hw_random/
H A Dcore.c56 static int hwrng_init(struct hwrng *rng);
59 static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
69 struct hwrng *rng = container_of(kref, struct hwrng, ref); in cleanup_rng() local
71 if (rng->cleanup) in cleanup_rng()
72 rng->cleanup(rng); in cleanup_rng()
74 complete(&rng->cleanup_done); in cleanup_rng()
77 static int set_current_rng(struct hwrng *rng) in set_current_rng() argument
83 err = hwrng_init(rng); in set_current_rng()
88 current_rng = rng; in set_current_rng()
124 struct hwrng *rng; in get_current_rng() local
[all …]
H A DMakefile6 obj-$(CONFIG_HW_RANDOM) += rng-core.o
7 rng-core-y := core.o
8 obj-$(CONFIG_HW_RANDOM_TIMERIOMEM) += timeriomem-rng.o
9 obj-$(CONFIG_HW_RANDOM_INTEL) += intel-rng.o
10 obj-$(CONFIG_HW_RANDOM_AMD) += amd-rng.o
12 obj-$(CONFIG_HW_RANDOM_ATMEL) += atmel-rng.o
13 obj-$(CONFIG_HW_RANDOM_BA431) += ba431-rng.o
14 obj-$(CONFIG_HW_RANDOM_GEODE) += geode-rng.o
15 obj-$(CONFIG_HW_RANDOM_N2RNG) += n2-rng.o
16 n2-rng-y := n2-drv.o n2-asm.o
[all …]
H A Dcavium-rng-vf.c82 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 Dhisi-rng.c23 #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 Docteon-rng.c28 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 Dmxc-rnga.c56 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 Dpic32-rng.c30 struct hwrng rng; member
40 static int pic32_rng_init(struct hwrng *rng) in pic32_rng_init() argument
42 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_init()
49 static int pic32_rng_read(struct hwrng *rng, void *buf, size_t max, in pic32_rng_read() argument
52 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_read()
70 static void pic32_rng_cleanup(struct hwrng *rng) in pic32_rng_cleanup() argument
72 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_cleanup()
94 priv->rng.name = pdev->name; in pic32_rng_probe()
95 priv->rng.init = pic32_rng_init; in pic32_rng_probe()
96 priv->rng.read = pic32_rng_read; in pic32_rng_probe()
[all …]
H A Dcavium-rng.c26 struct cavium_rng_pf *rng; in cavium_rng_probe() local
29 rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); in cavium_rng_probe()
30 if (!rng) in cavium_rng_probe()
34 rng->control_status = pcim_iomap(pdev, 0, 0); in cavium_rng_probe()
35 if (!rng->control_status) { in cavium_rng_probe()
43 rng->control_status); in cavium_rng_probe()
45 pci_set_drvdata(pdev, rng); in cavium_rng_probe()
51 writeq(0, rng->control_status); in cavium_rng_probe()
64 struct cavium_rng_pf *rng; in cavium_rng_remove() local
66 rng = pci_get_drvdata(pdev); in cavium_rng_remove()
[all …]
H A Dingenic-trng.c32 struct hwrng rng; member
35 static int ingenic_trng_init(struct hwrng *rng) in ingenic_trng_init() argument
37 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_init()
47 static void ingenic_trng_cleanup(struct hwrng *rng) in ingenic_trng_cleanup() argument
49 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_cleanup()
57 static int ingenic_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in ingenic_trng_read() argument
59 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_read()
96 trng->rng.name = pdev->name; in ingenic_trng_probe()
97 trng->rng.init = ingenic_trng_init; in ingenic_trng_probe()
98 trng->rng.cleanup = ingenic_trng_cleanup; in ingenic_trng_probe()
[all …]
H A Diproc-rng200.c42 struct hwrng rng; member
46 #define to_rng_priv(rng) container_of(rng, struct iproc_rng200_dev, rng) argument
90 static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max, in iproc_rng200_read() argument
93 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_read()
151 static int iproc_rng200_init(struct hwrng *rng) in iproc_rng200_init() argument
153 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_init()
160 static void iproc_rng200_cleanup(struct hwrng *rng) in iproc_rng200_cleanup() argument
162 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_cleanup()
186 priv->rng.name = "iproc-rng200"; in iproc_rng200_probe()
187 priv->rng.read = iproc_rng200_read; in iproc_rng200_probe()
[all …]
H A Dbcm2835-rng.c31 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 Dba431-rng.c42 struct hwrng rng; member
115 static int ba431_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in ba431_trng_read() argument
117 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_read()
155 static void ba431_trng_cleanup(struct hwrng *rng) in ba431_trng_cleanup() argument
157 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_cleanup()
163 static int ba431_trng_init(struct hwrng *rng) in ba431_trng_init() argument
165 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_init()
187 ba431->rng.name = pdev->name; in ba431_trng_probe()
188 ba431->rng.init = ba431_trng_init; in ba431_trng_probe()
189 ba431->rng.cleanup = ba431_trng_cleanup; in ba431_trng_probe()
[all …]
H A Dmeson-rng.c26 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 Dpasemi-rng.c33 static int pasemi_rng_data_present(struct hwrng *rng, int wait) in pasemi_rng_data_present() argument
35 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_data_present()
48 static int pasemi_rng_data_read(struct hwrng *rng, u32 *data) in pasemi_rng_data_read() argument
50 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_data_read()
55 static int pasemi_rng_init(struct hwrng *rng) in pasemi_rng_init() argument
57 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_init()
67 static void pasemi_rng_cleanup(struct hwrng *rng) in pasemi_rng_cleanup() argument
69 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_cleanup()
H A Dxiphera-trng.c32 struct hwrng rng; member
35 static int xiphera_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in xiphera_trng_read() argument
37 struct xiphera_trng *trng = container_of(rng, struct xiphera_trng, rng); in xiphera_trng_read()
114 trng->rng.name = pdev->name; in xiphera_trng_probe()
115 trng->rng.read = xiphera_trng_read; in xiphera_trng_probe()
116 trng->rng.quality = 900; in xiphera_trng_probe()
118 ret = devm_hwrng_register(dev, &trng->rng); in xiphera_trng_probe()
H A Dmpfs-rng.c24 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()
/linux/drivers/crypto/xilinx/
H A Dxilinx-trng.c69 struct xilinx_rng *rng; member
98 static void xtrng_softreset(struct xilinx_rng *rng) in xtrng_softreset() argument
100 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, in xtrng_softreset()
103 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSRST_MASK, 0); in xtrng_softreset()
133 static int xtrng_collect_random_data(struct xilinx_rng *rng, u8 *rand_gen_buf, in xtrng_collect_random_data() argument
142 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, TRNG_CTRL_PRNGSTART_MASK, in xtrng_collect_random_data()
145 ret = xtrng_readblock32(rng->rng_base, (__be32 *)rand_gen_buf, blocks, wait); in xtrng_collect_random_data()
152 ret = xtrng_readblock32(rng->rng_base, (__be32 *)randbuf, 1, wait); in xtrng_collect_random_data()
159 xtrng_readwrite32(rng->rng_base + TRNG_CTRL_OFFSET, in xtrng_collect_random_data()
177 static void xtrng_enable_entropy(struct xilinx_rng *rng) in xtrng_enable_entropy() argument
[all …]
/linux/drivers/crypto/
H A Dqcom-rng.c43 struct qcom_rng *rng; member
53 static int qcom_rng_read(struct qcom_rng *rng, u8 *data, unsigned int max) in qcom_rng_read() argument
61 ret = readl_poll_timeout(rng->base + PRNG_STATUS, val, in qcom_rng_read()
67 val = readl_relaxed(rng->base + PRNG_DATA_OUT); in qcom_rng_read()
90 struct qcom_rng *rng = ctx->rng; in qcom_rng_generate() local
93 ret = clk_prepare_enable(rng->clk); in qcom_rng_generate()
97 mutex_lock(&rng->lock); in qcom_rng_generate()
99 ret = qcom_rng_read(rng, dstn, dlen); in qcom_rng_generate()
101 mutex_unlock(&rng->lock); in qcom_rng_generate()
102 clk_disable_unprepare(rng->clk); in qcom_rng_generate()
[all …]
H A Datmel-sha204a.c25 struct hwrng *rng = areq; in atmel_sha204a_rng_done() local
32 rng->priv = (unsigned long)work_data; in atmel_sha204a_rng_done()
36 static int atmel_sha204a_rng_read_nonblocking(struct hwrng *rng, void *data, in atmel_sha204a_rng_read_nonblocking() argument
42 i2c_priv = container_of(rng, struct atmel_i2c_client_priv, hwrng); in atmel_sha204a_rng_read_nonblocking()
48 if (rng->priv) { in atmel_sha204a_rng_read_nonblocking()
49 work_data = (struct atmel_i2c_work_data *)rng->priv; in atmel_sha204a_rng_read_nonblocking()
52 rng->priv = 0; in atmel_sha204a_rng_read_nonblocking()
65 atmel_i2c_enqueue(work_data, atmel_sha204a_rng_done, rng); in atmel_sha204a_rng_read_nonblocking()
70 static int atmel_sha204a_rng_read(struct hwrng *rng, void *data, size_t max, in atmel_sha204a_rng_read() argument
78 return atmel_sha204a_rng_read_nonblocking(rng, data, max); in atmel_sha204a_rng_read()
[all …]
/linux/arch/powerpc/platforms/powernv/
H A Drng.c32 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/crypto/
H A Djitterentropy-kcapi.c204 struct jitterentropy *rng = crypto_tfm_ctx(tfm); in jent_kcapi_cleanup() local
206 spin_lock(&rng->jent_lock); in jent_kcapi_cleanup()
208 if (rng->sdesc) { in jent_kcapi_cleanup()
209 shash_desc_zero(rng->sdesc); in jent_kcapi_cleanup()
210 kfree(rng->sdesc); in jent_kcapi_cleanup()
212 rng->sdesc = NULL; in jent_kcapi_cleanup()
214 if (rng->tfm) in jent_kcapi_cleanup()
215 crypto_free_shash(rng->tfm); in jent_kcapi_cleanup()
216 rng->tfm = NULL; in jent_kcapi_cleanup()
218 if (rng->entropy_collector) in jent_kcapi_cleanup()
[all …]
/linux/drivers/crypto/caam/
H A Dcaamrng.c38 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/include/linux/
H A Dhw_random.h40 int (*init)(struct hwrng *rng);
41 void (*cleanup)(struct hwrng *rng);
42 int (*data_present)(struct hwrng *rng, int wait);
43 int (*data_read)(struct hwrng *rng, u32 *data);
44 int (*read)(struct hwrng *rng, void *data, size_t max, bool wait);
58 extern int hwrng_register(struct hwrng *rng);
59 extern int devm_hwrng_register(struct device *dev, struct hwrng *rng);
61 extern void hwrng_unregister(struct hwrng *rng);
62 extern void devm_hwrng_unregister(struct device *dve, struct hwrng *rng);
64 extern long hwrng_msleep(struct hwrng *rng, unsigned int msecs);
[all …]
/linux/drivers/crypto/amcc/
H A Dcrypto4xx_trng.c28 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(sizeof(*rng), GFP_KERNEL); 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 Drandom.c43 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()

123456789