Lines Matching refs:rng
46 struct hwrng rng; member
51 static int stm32_rng_read(struct hwrng *rng, void *data, size_t max, bool wait) in stm32_rng_read() argument
54 container_of(rng, struct stm32_rng_private, rng); in stm32_rng_read()
58 pm_runtime_get_sync((struct device *) priv->rng.priv); in stm32_rng_read()
86 pm_runtime_mark_last_busy((struct device *) priv->rng.priv); in stm32_rng_read()
87 pm_runtime_put_sync_autosuspend((struct device *) priv->rng.priv); in stm32_rng_read()
92 static int stm32_rng_init(struct hwrng *rng) in stm32_rng_init() argument
95 container_of(rng, struct stm32_rng_private, rng); in stm32_rng_init()
110 static void stm32_rng_cleanup(struct hwrng *rng) in stm32_rng_cleanup() argument
113 container_of(rng, struct stm32_rng_private, rng); in stm32_rng_cleanup()
145 priv->rng.name = dev_driver_string(dev), in stm32_rng_probe()
147 priv->rng.init = stm32_rng_init, in stm32_rng_probe()
148 priv->rng.cleanup = stm32_rng_cleanup, in stm32_rng_probe()
150 priv->rng.read = stm32_rng_read, in stm32_rng_probe()
151 priv->rng.priv = (unsigned long) dev; in stm32_rng_probe()
157 return devm_hwrng_register(dev, &priv->rng); in stm32_rng_probe()
165 stm32_rng_cleanup(&priv->rng); in stm32_rng_runtime_suspend()
174 return stm32_rng_init(&priv->rng); in stm32_rng_runtime_resume()