rngdev 67 drivers/char/hw_random/tx4939-rng.c struct tx4939_rng *rngdev = container_of(rng, struct tx4939_rng, rng); rngdev 70 drivers/char/hw_random/tx4939-rng.c if (rngdev->data_avail) rngdev 71 drivers/char/hw_random/tx4939-rng.c return rngdev->data_avail; rngdev 74 drivers/char/hw_random/tx4939-rng.c if (!(read_rng(rngdev->base, TX4939_RNG_RCSR) rngdev 76 drivers/char/hw_random/tx4939-rng.c rngdev->databuf[0] = rngdev 77 drivers/char/hw_random/tx4939-rng.c read_rng(rngdev->base, TX4939_RNG_ROR(0)); rngdev 78 drivers/char/hw_random/tx4939-rng.c rngdev->databuf[1] = rngdev 79 drivers/char/hw_random/tx4939-rng.c read_rng(rngdev->base, TX4939_RNG_ROR(1)); rngdev 80 drivers/char/hw_random/tx4939-rng.c rngdev->databuf[2] = rngdev 81 drivers/char/hw_random/tx4939-rng.c read_rng(rngdev->base, TX4939_RNG_ROR(2)); rngdev 82 drivers/char/hw_random/tx4939-rng.c rngdev->data_avail = rngdev 83 drivers/char/hw_random/tx4939-rng.c sizeof(rngdev->databuf) / sizeof(u32); rngdev 86 drivers/char/hw_random/tx4939-rng.c rngdev->base, TX4939_RNG_RCSR); rngdev 95 drivers/char/hw_random/tx4939-rng.c return rngdev->data_avail; rngdev 100 drivers/char/hw_random/tx4939-rng.c struct tx4939_rng *rngdev = container_of(rng, struct tx4939_rng, rng); rngdev 102 drivers/char/hw_random/tx4939-rng.c rngdev->data_avail--; rngdev 103 drivers/char/hw_random/tx4939-rng.c *buffer = *((u32 *)&rngdev->databuf + rngdev->data_avail); rngdev 109 drivers/char/hw_random/tx4939-rng.c struct tx4939_rng *rngdev; rngdev 113 drivers/char/hw_random/tx4939-rng.c rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL); rngdev 114 drivers/char/hw_random/tx4939-rng.c if (!rngdev) rngdev 117 drivers/char/hw_random/tx4939-rng.c rngdev->base = devm_ioremap_resource(&dev->dev, r); rngdev 118 drivers/char/hw_random/tx4939-rng.c if (IS_ERR(rngdev->base)) rngdev 119 drivers/char/hw_random/tx4939-rng.c return PTR_ERR(rngdev->base); rngdev 121 drivers/char/hw_random/tx4939-rng.c rngdev->rng.name = dev_name(&dev->dev); rngdev 122 drivers/char/hw_random/tx4939-rng.c rngdev->rng.data_present = tx4939_rng_data_present; rngdev 123 drivers/char/hw_random/tx4939-rng.c rngdev->rng.data_read = tx4939_rng_data_read; rngdev 127 drivers/char/hw_random/tx4939-rng.c write_rng(TX4939_RNG_RCSR_RST, rngdev->base, TX4939_RNG_RCSR); rngdev 128 drivers/char/hw_random/tx4939-rng.c write_rng(0, rngdev->base, TX4939_RNG_RCSR); rngdev 130 drivers/char/hw_random/tx4939-rng.c write_rng(TX4939_RNG_RCSR_ST, rngdev->base, TX4939_RNG_RCSR); rngdev 141 drivers/char/hw_random/tx4939-rng.c rngdev->data_avail = 0; rngdev 142 drivers/char/hw_random/tx4939-rng.c if (!tx4939_rng_data_present(&rngdev->rng, 1)) rngdev 146 drivers/char/hw_random/tx4939-rng.c platform_set_drvdata(dev, rngdev); rngdev 147 drivers/char/hw_random/tx4939-rng.c return devm_hwrng_register(&dev->dev, &rngdev->rng);