Lines Matching defs:rng
6 #define pr_fmt(fmt) "powernv-rng: " fmt
32 static unsigned long rng_whiten(struct pnv_rng *rng, unsigned long val)
44 val ^= rng->mask;
47 rng->mask = (rng->mask << 1) | (parity & 1);
86 struct pnv_rng *rng;
89 rng = get_cpu_var(pnv_rng);
90 *v = rng_whiten(rng, in_be64(rng->regs));
91 put_cpu_var(rng);
93 rng = raw_cpu_read(pnv_rng);
94 *v = rng_whiten(rng, __raw_rm_readq(rng->regs_real));
100 static __init void rng_init_per_cpu(struct pnv_rng *rng,
112 per_cpu(pnv_rng, cpu) = rng;
119 struct pnv_rng *rng;
123 rng = kzalloc(sizeof(*rng), GFP_KERNEL);
124 if (!rng)
128 kfree(rng);
132 rng->regs_real = (void __iomem *)res.start;
134 rng->regs = of_iomap(dn, 0);
135 if (!rng->regs) {
136 kfree(rng);
140 val = in_be64(rng->regs);
141 rng->mask = val;
143 rng_init_per_cpu(rng, dn);
161 for_each_compatible_node(dn, NULL, "ibm,power-rng")
177 dn = of_find_compatible_node(NULL, NULL, "ibm,power-rng");
194 for_each_compatible_node(dn, NULL, "ibm,power-rng")