diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2016-01-20 17:58:41 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-20 20:09:18 -0500 |
commit | 1f330c3279004dd83fcbac5669a858366c51e058 (patch) | |
tree | 30860ee9f3eac4d6aa1b1ee165302fb3690ca8ea | |
parent | c431e678127578c1b86fe976556d79dd669ad953 (diff) |
drivers/firmware/broadcom/bcm47xx_nvram.c: use __ioread32_copy() instead of open-coding
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>
-rw-r--r-- | drivers/firmware/broadcom/bcm47xx_nvram.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/firmware/broadcom/bcm47xx_nvram.c b/drivers/firmware/broadcom/bcm47xx_nvram.c index e41594510b97..0c2f0a61b0ea 100644 --- a/drivers/firmware/broadcom/bcm47xx_nvram.c +++ b/drivers/firmware/broadcom/bcm47xx_nvram.c | |||
@@ -56,9 +56,7 @@ static u32 find_nvram_size(void __iomem *end) | |||
56 | static int nvram_find_and_copy(void __iomem *iobase, u32 lim) | 56 | static int nvram_find_and_copy(void __iomem *iobase, u32 lim) |
57 | { | 57 | { |
58 | struct nvram_header __iomem *header; | 58 | struct nvram_header __iomem *header; |
59 | int i; | ||
60 | u32 off; | 59 | u32 off; |
61 | u32 *src, *dst; | ||
62 | u32 size; | 60 | u32 size; |
63 | 61 | ||
64 | if (nvram_len) { | 62 | if (nvram_len) { |
@@ -95,10 +93,7 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim) | |||
95 | return -ENXIO; | 93 | return -ENXIO; |
96 | 94 | ||
97 | found: | 95 | found: |
98 | src = (u32 *)header; | 96 | __ioread32_copy(nvram_buf, header, sizeof(*header) / 4); |
99 | dst = (u32 *)nvram_buf; | ||
100 | for (i = 0; i < sizeof(struct nvram_header); i += 4) | ||
101 | *dst++ = __raw_readl(src++); | ||
102 | header = (struct nvram_header *)nvram_buf; | 97 | header = (struct nvram_header *)nvram_buf; |
103 | nvram_len = header->len; | 98 | nvram_len = header->len; |
104 | if (nvram_len > size) { | 99 | if (nvram_len > size) { |
@@ -111,8 +106,8 @@ found: | |||
111 | nvram_len = NVRAM_SPACE - 1; | 106 | nvram_len = NVRAM_SPACE - 1; |
112 | } | 107 | } |
113 | /* proceed reading data after header */ | 108 | /* proceed reading data after header */ |
114 | for (; i < nvram_len; i += 4) | 109 | __ioread32_copy(nvram_buf + sizeof(*header), header + 1, |
115 | *dst++ = readl(src++); | 110 | DIV_ROUND_UP(nvram_len, 4)); |
116 | nvram_buf[NVRAM_SPACE - 1] = '\0'; | 111 | nvram_buf[NVRAM_SPACE - 1] = '\0'; |
117 | 112 | ||
118 | return 0; | 113 | return 0; |