rngc 23 arch/sparc/prom/ranges.c int regc, rngc; rngc 26 arch/sparc/prom/ranges.c for (rngc = 0; rngc < nranges; rngc++) rngc 27 arch/sparc/prom/ranges.c if (regp[regc].which_io == rangep[rngc].ot_child_space) rngc 29 arch/sparc/prom/ranges.c if (rngc == nranges) /* oops */ rngc 31 arch/sparc/prom/ranges.c regp[regc].which_io = rangep[rngc].ot_parent_space; rngc 32 arch/sparc/prom/ranges.c regp[regc].phys_addr -= rangep[rngc].ot_child_base; rngc 33 arch/sparc/prom/ranges.c regp[regc].phys_addr += rangep[rngc].ot_parent_base; rngc 63 drivers/char/hw_random/imx-rngc.c static inline void imx_rngc_irq_mask_clear(struct imx_rngc *rngc) rngc 68 drivers/char/hw_random/imx-rngc.c ctrl = readl(rngc->base + RNGC_CONTROL); rngc 70 drivers/char/hw_random/imx-rngc.c writel(ctrl, rngc->base + RNGC_CONTROL); rngc 77 drivers/char/hw_random/imx-rngc.c cmd = readl(rngc->base + RNGC_COMMAND); rngc 79 drivers/char/hw_random/imx-rngc.c writel(cmd, rngc->base + RNGC_COMMAND); rngc 82 drivers/char/hw_random/imx-rngc.c static inline void imx_rngc_irq_unmask(struct imx_rngc *rngc) rngc 86 drivers/char/hw_random/imx-rngc.c ctrl = readl(rngc->base + RNGC_CONTROL); rngc 88 drivers/char/hw_random/imx-rngc.c writel(ctrl, rngc->base + RNGC_CONTROL); rngc 91 drivers/char/hw_random/imx-rngc.c static int imx_rngc_self_test(struct imx_rngc *rngc) rngc 96 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_unmask(rngc); rngc 99 drivers/char/hw_random/imx-rngc.c cmd = readl(rngc->base + RNGC_COMMAND); rngc 100 drivers/char/hw_random/imx-rngc.c writel(cmd | RNGC_CMD_SELF_TEST, rngc->base + RNGC_COMMAND); rngc 102 drivers/char/hw_random/imx-rngc.c ret = wait_for_completion_timeout(&rngc->rng_op_done, RNGC_TIMEOUT); rngc 104 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_mask_clear(rngc); rngc 108 drivers/char/hw_random/imx-rngc.c if (rngc->err_reg != 0) { rngc 109 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_mask_clear(rngc); rngc 118 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng); rngc 124 drivers/char/hw_random/imx-rngc.c status = readl(rngc->base + RNGC_STATUS); rngc 136 drivers/char/hw_random/imx-rngc.c *(u32 *)data = readl(rngc->base + RNGC_FIFO); rngc 149 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc = (struct imx_rngc *)priv; rngc 156 drivers/char/hw_random/imx-rngc.c status = readl(rngc->base + RNGC_STATUS); rngc 157 drivers/char/hw_random/imx-rngc.c rngc->err_reg = readl(rngc->base + RNGC_ERROR); rngc 159 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_mask_clear(rngc); rngc 162 drivers/char/hw_random/imx-rngc.c complete(&rngc->rng_op_done); rngc 169 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng); rngc 174 drivers/char/hw_random/imx-rngc.c cmd = readl(rngc->base + RNGC_COMMAND); rngc 175 drivers/char/hw_random/imx-rngc.c writel(cmd | RNGC_CMD_CLR_ERR, rngc->base + RNGC_COMMAND); rngc 179 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_unmask(rngc); rngc 182 drivers/char/hw_random/imx-rngc.c cmd = readl(rngc->base + RNGC_COMMAND); rngc 183 drivers/char/hw_random/imx-rngc.c writel(cmd | RNGC_CMD_SEED, rngc->base + RNGC_COMMAND); rngc 185 drivers/char/hw_random/imx-rngc.c ret = wait_for_completion_timeout(&rngc->rng_op_done, rngc 189 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_mask_clear(rngc); rngc 193 drivers/char/hw_random/imx-rngc.c } while (rngc->err_reg == RNGC_ERROR_STATUS_STAT_ERR); rngc 195 drivers/char/hw_random/imx-rngc.c return rngc->err_reg ? -EIO : 0; rngc 200 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc; rngc 204 drivers/char/hw_random/imx-rngc.c rngc = devm_kzalloc(&pdev->dev, sizeof(*rngc), GFP_KERNEL); rngc 205 drivers/char/hw_random/imx-rngc.c if (!rngc) rngc 208 drivers/char/hw_random/imx-rngc.c rngc->base = devm_platform_ioremap_resource(pdev, 0); rngc 209 drivers/char/hw_random/imx-rngc.c if (IS_ERR(rngc->base)) rngc 210 drivers/char/hw_random/imx-rngc.c return PTR_ERR(rngc->base); rngc 212 drivers/char/hw_random/imx-rngc.c rngc->clk = devm_clk_get(&pdev->dev, NULL); rngc 213 drivers/char/hw_random/imx-rngc.c if (IS_ERR(rngc->clk)) { rngc 215 drivers/char/hw_random/imx-rngc.c return PTR_ERR(rngc->clk); rngc 224 drivers/char/hw_random/imx-rngc.c ret = clk_prepare_enable(rngc->clk); rngc 229 drivers/char/hw_random/imx-rngc.c irq, imx_rngc_irq, 0, pdev->name, (void *)rngc); rngc 231 drivers/char/hw_random/imx-rngc.c dev_err(rngc->dev, "Can't get interrupt working.\n"); rngc 235 drivers/char/hw_random/imx-rngc.c init_completion(&rngc->rng_op_done); rngc 237 drivers/char/hw_random/imx-rngc.c rngc->rng.name = pdev->name; rngc 238 drivers/char/hw_random/imx-rngc.c rngc->rng.init = imx_rngc_init; rngc 239 drivers/char/hw_random/imx-rngc.c rngc->rng.read = imx_rngc_read; rngc 241 drivers/char/hw_random/imx-rngc.c rngc->dev = &pdev->dev; rngc 242 drivers/char/hw_random/imx-rngc.c platform_set_drvdata(pdev, rngc); rngc 244 drivers/char/hw_random/imx-rngc.c imx_rngc_irq_mask_clear(rngc); rngc 247 drivers/char/hw_random/imx-rngc.c ret = imx_rngc_self_test(rngc); rngc 249 drivers/char/hw_random/imx-rngc.c dev_err(rngc->dev, "FSL RNGC self test failed.\n"); rngc 254 drivers/char/hw_random/imx-rngc.c ret = hwrng_register(&rngc->rng); rngc 264 drivers/char/hw_random/imx-rngc.c clk_disable_unprepare(rngc->clk); rngc 271 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc = platform_get_drvdata(pdev); rngc 273 drivers/char/hw_random/imx-rngc.c hwrng_unregister(&rngc->rng); rngc 275 drivers/char/hw_random/imx-rngc.c clk_disable_unprepare(rngc->clk); rngc 282 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc = dev_get_drvdata(dev); rngc 284 drivers/char/hw_random/imx-rngc.c clk_disable_unprepare(rngc->clk); rngc 291 drivers/char/hw_random/imx-rngc.c struct imx_rngc *rngc = dev_get_drvdata(dev); rngc 293 drivers/char/hw_random/imx-rngc.c clk_prepare_enable(rngc->clk);