drivers/firmware/broadcom/bcm47xx_nvram.c: use __ioread32_copy() instead of open...
authorStephen Boyd <sboyd@codeaurora.org>
Wed, 20 Jan 2016 22:58:41 +0000 (14:58 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Jan 2016 01:09:18 +0000 (17:09 -0800)
Now that we have a generic library function for this, replace the
open-coded instance.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Cc: <zajec5@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/firmware/broadcom/bcm47xx_nvram.c

index e41594510b978291de179182c46b0196b3a377e3..0c2f0a61b0ea021872f27705b53ae784f1be3f61 100644 (file)
@@ -56,9 +56,7 @@ static u32 find_nvram_size(void __iomem *end)
 static int nvram_find_and_copy(void __iomem *iobase, u32 lim)
 {
        struct nvram_header __iomem *header;
-       int i;
        u32 off;
-       u32 *src, *dst;
        u32 size;
 
        if (nvram_len) {
@@ -95,10 +93,7 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim)
        return -ENXIO;
 
 found:
-       src = (u32 *)header;
-       dst = (u32 *)nvram_buf;
-       for (i = 0; i < sizeof(struct nvram_header); i += 4)
-               *dst++ = __raw_readl(src++);
+       __ioread32_copy(nvram_buf, header, sizeof(*header) / 4);
        header = (struct nvram_header *)nvram_buf;
        nvram_len = header->len;
        if (nvram_len > size) {
@@ -111,8 +106,8 @@ found:
                nvram_len = NVRAM_SPACE - 1;
        }
        /* proceed reading data after header */
-       for (; i < nvram_len; i += 4)
-               *dst++ = readl(src++);
+       __ioread32_copy(nvram_buf + sizeof(*header), header + 1,
+                       DIV_ROUND_UP(nvram_len, 4));
        nvram_buf[NVRAM_SPACE - 1] = '\0';
 
        return 0;