Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

clk: mvebu: armada-37xx-periph: fix __iomem casts in structure init

There are a number of casts to "void __iomem *" in the initialsation
of the driver's clk information. Fix this by adding a helper macro
for the cast.

Silences a number of sparse warnings:

drivers/clk/mvebu/armada-37xx-periph.c:254:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:254:1: expected void [noderef] __iomem *reg
drivers/clk/mvebu/armada-37xx-periph.c:254:1: got void *
drivers/clk/mvebu/armada-37xx-periph.c:254:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:254:1: expected void [noderef] __iomem *reg1
drivers/clk/mvebu/armada-37xx-periph.c:254:1: got void *
drivers/clk/mvebu/armada-37xx-periph.c:254:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:254:1: expected void [noderef] __iomem *reg2
drivers/clk/mvebu/armada-37xx-periph.c:254:1: got void *
drivers/clk/mvebu/armada-37xx-periph.c:255:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:255:1: expected void [noderef] __iomem *reg
drivers/clk/mvebu/armada-37xx-periph.c:255:1: got void *
...

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Ben Dooks and committed by
Stephen Boyd
4d0f627a 096abbb6

+9 -7
+9 -7
drivers/clk/mvebu/armada-37xx-periph.c
··· 126 126 static const struct clk_ops clk_double_div_ops; 127 127 static const struct clk_ops clk_pm_cpu_ops; 128 128 129 + #define __reg(__x) ((void __iomem __force *)(__x)) 130 + 129 131 #define PERIPH_GATE(_name, _bit) \ 130 132 struct clk_gate gate_##_name = { \ 131 - .reg = (void *)CLK_DIS, \ 133 + .reg = __reg(CLK_DIS), \ 132 134 .bit_idx = _bit, \ 133 135 .hw.init = &(struct clk_init_data){ \ 134 136 .ops = &clk_gate_ops, \ ··· 139 137 140 138 #define PERIPH_MUX(_name, _shift) \ 141 139 struct clk_mux mux_##_name = { \ 142 - .reg = (void *)TBG_SEL, \ 140 + .reg = __reg(TBG_SEL), \ 143 141 .shift = _shift, \ 144 142 .mask = 3, \ 145 143 .hw.init = &(struct clk_init_data){ \ ··· 149 147 150 148 #define PERIPH_DOUBLEDIV(_name, _reg1, _reg2, _shift1, _shift2) \ 151 149 struct clk_double_div rate_##_name = { \ 152 - .reg1 = (void *)_reg1, \ 153 - .reg2 = (void *)_reg2, \ 150 + .reg1 = __reg(_reg1), \ 151 + .reg2 = __reg(_reg2), \ 154 152 .shift1 = _shift1, \ 155 153 .shift2 = _shift2, \ 156 154 .hw.init = &(struct clk_init_data){ \ ··· 160 158 161 159 #define PERIPH_DIV(_name, _reg, _shift, _table) \ 162 160 struct clk_divider rate_##_name = { \ 163 - .reg = (void *)_reg, \ 161 + .reg = __reg(_reg), \ 164 162 .table = _table, \ 165 163 .shift = _shift, \ 166 164 .hw.init = &(struct clk_init_data){ \ ··· 170 168 171 169 #define PERIPH_PM_CPU(_name, _shift1, _reg, _shift2) \ 172 170 struct clk_pm_cpu muxrate_##_name = { \ 173 - .reg_mux = (void *)TBG_SEL, \ 171 + .reg_mux = __reg(TBG_SEL), \ 174 172 .mask_mux = 3, \ 175 173 .shift_mux = _shift1, \ 176 - .reg_div = (void *)_reg, \ 174 + .reg_div = __reg(_reg), \ 177 175 .shift_div = _shift2, \ 178 176 .hw.init = &(struct clk_init_data){ \ 179 177 .ops = &clk_pm_cpu_ops, \