Lines Matching refs:rng
36 struct powernv_rng *rng; in powernv_hwrng_present() local
38 rng = get_cpu_var(powernv_rng); in powernv_hwrng_present()
39 put_cpu_var(rng); in powernv_hwrng_present()
40 return rng != NULL; in powernv_hwrng_present()
43 static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val) in rng_whiten() argument
51 val ^= rng->mask; in rng_whiten()
54 rng->mask = (rng->mask << 1) | (parity & 1); in rng_whiten()
61 struct powernv_rng *rng; in powernv_get_random_real_mode() local
63 rng = raw_cpu_read(powernv_rng); in powernv_get_random_real_mode()
65 *v = rng_whiten(rng, in_rm64(rng->regs_real)); in powernv_get_random_real_mode()
72 struct powernv_rng *rng; in powernv_get_random_long() local
74 rng = get_cpu_var(powernv_rng); in powernv_get_random_long()
76 *v = rng_whiten(rng, in_be64(rng->regs)); in powernv_get_random_long()
78 put_cpu_var(rng); in powernv_get_random_long()
84 static __init void rng_init_per_cpu(struct powernv_rng *rng, in rng_init_per_cpu() argument
96 per_cpu(powernv_rng, cpu) = rng; in rng_init_per_cpu()
103 struct powernv_rng *rng; in rng_create() local
107 rng = kzalloc(sizeof(*rng), GFP_KERNEL); in rng_create()
108 if (!rng) in rng_create()
112 kfree(rng); in rng_create()
116 rng->regs_real = (void __iomem *)res.start; in rng_create()
118 rng->regs = of_iomap(dn, 0); in rng_create()
119 if (!rng->regs) { in rng_create()
120 kfree(rng); in rng_create()
124 val = in_be64(rng->regs); in rng_create()
125 rng->mask = val; in rng_create()
127 rng_init_per_cpu(rng, dn); in rng_create()