Skip to content

Commit faa0c1f

Browse files
diandersandersson
authored andcommitted
soc: qcom: rpmh-rsc: Factor "tcs_reg_addr" and "tcs_cmd_addr" calculation
We can make some of the register access functions more readable by factoring out the calculations a little bit. Suggested-by: Joe Perches <[email protected]> Signed-off-by: Douglas Anderson <[email protected]> Reviewed-by: Stephen Boyd <[email protected]> Link: https://lore.kernel.org/r/20200415095953.v3.1.Ic70288f256ff0be65cac6a600367212dfe39f6c9@changeid Signed-off-by: Bjorn Andersson <[email protected]>
1 parent 8f09210 commit faa0c1f

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

drivers/soc/qcom/rpmh-rsc.c

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -137,36 +137,47 @@
137137
* +---------------------------------------------------+
138138
*/
139139

140-
static u32 read_tcs_cmd(struct rsc_drv *drv, int reg, int tcs_id, int cmd_id)
140+
static inline void __iomem *
141+
tcs_reg_addr(const struct rsc_drv *drv, int reg, int tcs_id)
141142
{
142-
return readl_relaxed(drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg +
143-
RSC_DRV_CMD_OFFSET * cmd_id);
143+
return drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg;
144144
}
145145

146-
static u32 read_tcs_reg(struct rsc_drv *drv, int reg, int tcs_id)
146+
static inline void __iomem *
147+
tcs_cmd_addr(const struct rsc_drv *drv, int reg, int tcs_id, int cmd_id)
147148
{
148-
return readl_relaxed(drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg);
149+
return tcs_reg_addr(drv, reg, tcs_id) + RSC_DRV_CMD_OFFSET * cmd_id;
149150
}
150151

151-
static void write_tcs_cmd(struct rsc_drv *drv, int reg, int tcs_id, int cmd_id,
152-
u32 data)
152+
static u32 read_tcs_cmd(const struct rsc_drv *drv, int reg, int tcs_id,
153+
int cmd_id)
154+
{
155+
return readl_relaxed(tcs_cmd_addr(drv, reg, tcs_id, cmd_id));
156+
}
157+
158+
static u32 read_tcs_reg(const struct rsc_drv *drv, int reg, int tcs_id)
153159
{
154-
writel_relaxed(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg +
155-
RSC_DRV_CMD_OFFSET * cmd_id);
160+
return readl_relaxed(tcs_reg_addr(drv, reg, tcs_id));
156161
}
157162

158-
static void write_tcs_reg(struct rsc_drv *drv, int reg, int tcs_id, u32 data)
163+
static void write_tcs_cmd(const struct rsc_drv *drv, int reg, int tcs_id,
164+
int cmd_id, u32 data)
165+
{
166+
writel_relaxed(data, tcs_cmd_addr(drv, reg, tcs_id, cmd_id));
167+
}
168+
169+
static void write_tcs_reg(const struct rsc_drv *drv, int reg, int tcs_id,
170+
u32 data)
159171
{
160-
writel_relaxed(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg);
172+
writel_relaxed(data, tcs_reg_addr(drv, reg, tcs_id));
161173
}
162174

163-
static void write_tcs_reg_sync(struct rsc_drv *drv, int reg, int tcs_id,
175+
static void write_tcs_reg_sync(const struct rsc_drv *drv, int reg, int tcs_id,
164176
u32 data)
165177
{
166-
writel(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg);
178+
writel(data, tcs_reg_addr(drv, reg, tcs_id));
167179
for (;;) {
168-
if (data == readl(drv->tcs_base + reg +
169-
RSC_DRV_TCS_OFFSET * tcs_id))
180+
if (data == readl(tcs_reg_addr(drv, reg, tcs_id)))
170181
break;
171182
udelay(1);
172183
}

0 commit comments

Comments
 (0)