Loading drivers/char/hw_random/msm_rng.c +35 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,12 @@ int msm_rng_direct_read(struct msm_rng_device *msm_rng_dev, void *data) pdev = msm_rng_dev->pdev; base = msm_rng_dev->base; if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 1); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } /* enable PRNG clock */ ret = clk_prepare_enable(msm_rng_dev->prng_clk); if (ret) { Loading @@ -145,6 +151,13 @@ int msm_rng_direct_read(struct msm_rng_device *msm_rng_dev, void *data) /* vote to turn off clock */ clk_disable_unprepare(msm_rng_dev->prng_clk); if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 0); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } val = 0L; return currsize; Loading Loading @@ -184,6 +197,13 @@ static int msm_rng_drbg_read(struct hwrng *rng, } else ret1 = 1; if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 1); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } /* read random data from h/w */ /* enable PRNG clock */ ret = clk_prepare_enable(msm_rng_dev->prng_clk); Loading Loading @@ -215,6 +235,13 @@ static int msm_rng_drbg_read(struct hwrng *rng, /* vote to turn off clock */ clk_disable_unprepare(msm_rng_dev->prng_clk); if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 0); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } up(&msm_rng_dev->drbg_sem); return currsize; Loading Loading @@ -369,6 +396,14 @@ static int msm_rng_enable_hw(struct msm_rng_device *msm_rng_dev) mb(); } clk_disable_unprepare(msm_rng_dev->prng_clk); if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 0); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } return 0; } Loading Loading
drivers/char/hw_random/msm_rng.c +35 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,12 @@ int msm_rng_direct_read(struct msm_rng_device *msm_rng_dev, void *data) pdev = msm_rng_dev->pdev; base = msm_rng_dev->base; if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 1); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } /* enable PRNG clock */ ret = clk_prepare_enable(msm_rng_dev->prng_clk); if (ret) { Loading @@ -145,6 +151,13 @@ int msm_rng_direct_read(struct msm_rng_device *msm_rng_dev, void *data) /* vote to turn off clock */ clk_disable_unprepare(msm_rng_dev->prng_clk); if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 0); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } val = 0L; return currsize; Loading Loading @@ -184,6 +197,13 @@ static int msm_rng_drbg_read(struct hwrng *rng, } else ret1 = 1; if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 1); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } /* read random data from h/w */ /* enable PRNG clock */ ret = clk_prepare_enable(msm_rng_dev->prng_clk); Loading Loading @@ -215,6 +235,13 @@ static int msm_rng_drbg_read(struct hwrng *rng, /* vote to turn off clock */ clk_disable_unprepare(msm_rng_dev->prng_clk); if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 0); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } up(&msm_rng_dev->drbg_sem); return currsize; Loading Loading @@ -369,6 +396,14 @@ static int msm_rng_enable_hw(struct msm_rng_device *msm_rng_dev) mb(); } clk_disable_unprepare(msm_rng_dev->prng_clk); if (msm_rng_dev->qrng_perf_client) { ret = msm_bus_scale_client_update_request( msm_rng_dev->qrng_perf_client, 0); if (ret) pr_err("bus_scale_client_update_req failed!\n"); } return 0; } Loading