Lines Matching refs:priv
49 ((struct timeriomem_rng_private_data *)rng->priv)
56 struct timeriomem_rng_private_data *priv = to_rng_priv(rng); in timeriomem_rng_data_present() local
58 if (!wait || priv->present) in timeriomem_rng_data_present()
59 return priv->present; in timeriomem_rng_data_present()
61 wait_for_completion(&priv->completion); in timeriomem_rng_data_present()
68 struct timeriomem_rng_private_data *priv = to_rng_priv(rng); in timeriomem_rng_data_read() local
72 *data = readl(priv->io_base); in timeriomem_rng_data_read()
76 delay = cur - priv->expires; in timeriomem_rng_data_read()
77 delay = priv->period - (delay % priv->period); in timeriomem_rng_data_read()
79 priv->expires = cur + delay; in timeriomem_rng_data_read()
80 priv->present = 0; in timeriomem_rng_data_read()
82 reinit_completion(&priv->completion); in timeriomem_rng_data_read()
83 mod_timer(&priv->timer, priv->expires); in timeriomem_rng_data_read()
90 struct timeriomem_rng_private_data *priv in timeriomem_rng_trigger() local
93 priv->present = 1; in timeriomem_rng_trigger()
94 complete(&priv->completion); in timeriomem_rng_trigger()
100 struct timeriomem_rng_private_data *priv; in timeriomem_rng_probe() local
121 priv = devm_kzalloc(&pdev->dev, in timeriomem_rng_probe()
123 if (!priv) in timeriomem_rng_probe()
126 platform_set_drvdata(pdev, priv); in timeriomem_rng_probe()
142 priv->period = usecs_to_jiffies(period); in timeriomem_rng_probe()
143 if (priv->period < 1) { in timeriomem_rng_probe()
148 priv->expires = jiffies; in timeriomem_rng_probe()
149 priv->present = 1; in timeriomem_rng_probe()
151 init_completion(&priv->completion); in timeriomem_rng_probe()
152 complete(&priv->completion); in timeriomem_rng_probe()
154 setup_timer(&priv->timer, timeriomem_rng_trigger, (unsigned long)priv); in timeriomem_rng_probe()
156 priv->timeriomem_rng_ops.name = dev_name(&pdev->dev); in timeriomem_rng_probe()
157 priv->timeriomem_rng_ops.data_present = timeriomem_rng_data_present; in timeriomem_rng_probe()
158 priv->timeriomem_rng_ops.data_read = timeriomem_rng_data_read; in timeriomem_rng_probe()
159 priv->timeriomem_rng_ops.priv = (unsigned long)priv; in timeriomem_rng_probe()
161 priv->io_base = devm_ioremap_resource(&pdev->dev, res); in timeriomem_rng_probe()
162 if (IS_ERR(priv->io_base)) { in timeriomem_rng_probe()
163 err = PTR_ERR(priv->io_base); in timeriomem_rng_probe()
167 err = hwrng_register(&priv->timeriomem_rng_ops); in timeriomem_rng_probe()
174 priv->io_base, period); in timeriomem_rng_probe()
179 del_timer_sync(&priv->timer); in timeriomem_rng_probe()
185 struct timeriomem_rng_private_data *priv = platform_get_drvdata(pdev); in timeriomem_rng_remove() local
187 hwrng_unregister(&priv->timeriomem_rng_ops); in timeriomem_rng_remove()
189 del_timer_sync(&priv->timer); in timeriomem_rng_remove()