Lines Matching refs:rng
6 #define pr_fmt(fmt) "powernv-rng: " fmt
34 struct powernv_rng *rng;
36 rng = get_cpu_var(powernv_rng);
37 put_cpu_var(rng);
38 return rng != NULL;
41 static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val)
53 val ^= rng->mask;
56 rng->mask = (rng->mask << 1) | (parity & 1);
63 struct powernv_rng *rng;
65 rng = raw_cpu_read(powernv_rng);
66 if (!rng)
69 *v = rng_whiten(rng, __raw_rm_readq(rng->regs_real));
108 struct powernv_rng *rng;
110 rng = get_cpu_var(powernv_rng);
112 *v = rng_whiten(rng, in_be64(rng->regs));
114 put_cpu_var(rng);
120 static __init void rng_init_per_cpu(struct powernv_rng *rng,
132 per_cpu(powernv_rng, cpu) = rng;
139 struct powernv_rng *rng;
143 rng = kzalloc(sizeof(*rng), GFP_KERNEL);
144 if (!rng)
148 kfree(rng);
152 rng->regs_real = (void __iomem *)res.start;
154 rng->regs = of_iomap(dn, 0);
155 if (!rng->regs) {
156 kfree(rng);
160 val = in_be64(rng->regs);
161 rng->mask = val;
163 rng_init_per_cpu(rng, dn);
181 for_each_compatible_node(dn, NULL, "ibm,power-rng")
197 dn = of_find_compatible_node(NULL, NULL, "ibm,power-rng");
214 for_each_compatible_node(dn, NULL, "ibm,power-rng")