OSDN Git Service

nvmem: sunxi_sid: Read out SID for randomness without looping
authorChen-Yu Tsai <wens@csie.org>
Sat, 13 Apr 2019 10:32:49 +0000 (11:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Apr 2019 17:43:11 +0000 (19:43 +0200)
Since the reg_read callbacks already support arbitrary, but 4-byte
aligned. offsets and lengths into the SID, there is no need for another
for loop just to use it to read 1 byte at a time.

Read out the whole SID block in one go.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvmem/sunxi_sid.c

index 570a2e3..704c35e 100644 (file)
@@ -154,7 +154,7 @@ static int sunxi_sid_probe(struct platform_device *pdev)
        struct resource *res;
        struct nvmem_device *nvmem;
        struct sunxi_sid *sid;
-       int i, size;
+       int size;
        char *randomness;
        const struct sunxi_sid_cfg *cfg;
 
@@ -189,8 +189,7 @@ static int sunxi_sid_probe(struct platform_device *pdev)
        if (!randomness)
                return -ENOMEM;
 
-       for (i = 0; i < size; i++)
-               econfig.reg_read(sid, i, &randomness[i], 1);
+       econfig.reg_read(sid, 0, randomness, size);
 
        add_device_randomness(randomness, size);
        kfree(randomness);