mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 12:14:01 +08:00
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 <joe@perches.com> Signed-off-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Stephen Boyd <swboyd@chromium.org> Link: https://lore.kernel.org/r/20200415095953.v3.1.Ic70288f256ff0be65cac6a600367212dfe39f6c9@changeid Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
8f09210d89
commit
faa0c1f106
@ -137,36 +137,47 @@
|
||||
* +---------------------------------------------------+
|
||||
*/
|
||||
|
||||
static u32 read_tcs_cmd(struct rsc_drv *drv, int reg, int tcs_id, int cmd_id)
|
||||
static inline void __iomem *
|
||||
tcs_reg_addr(const struct rsc_drv *drv, int reg, int tcs_id)
|
||||
{
|
||||
return readl_relaxed(drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg +
|
||||
RSC_DRV_CMD_OFFSET * cmd_id);
|
||||
return drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg;
|
||||
}
|
||||
|
||||
static u32 read_tcs_reg(struct rsc_drv *drv, int reg, int tcs_id)
|
||||
static inline void __iomem *
|
||||
tcs_cmd_addr(const struct rsc_drv *drv, int reg, int tcs_id, int cmd_id)
|
||||
{
|
||||
return readl_relaxed(drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg);
|
||||
return tcs_reg_addr(drv, reg, tcs_id) + RSC_DRV_CMD_OFFSET * cmd_id;
|
||||
}
|
||||
|
||||
static void write_tcs_cmd(struct rsc_drv *drv, int reg, int tcs_id, int cmd_id,
|
||||
static u32 read_tcs_cmd(const struct rsc_drv *drv, int reg, int tcs_id,
|
||||
int cmd_id)
|
||||
{
|
||||
return readl_relaxed(tcs_cmd_addr(drv, reg, tcs_id, cmd_id));
|
||||
}
|
||||
|
||||
static u32 read_tcs_reg(const struct rsc_drv *drv, int reg, int tcs_id)
|
||||
{
|
||||
return readl_relaxed(tcs_reg_addr(drv, reg, tcs_id));
|
||||
}
|
||||
|
||||
static void write_tcs_cmd(const struct rsc_drv *drv, int reg, int tcs_id,
|
||||
int cmd_id, u32 data)
|
||||
{
|
||||
writel_relaxed(data, tcs_cmd_addr(drv, reg, tcs_id, cmd_id));
|
||||
}
|
||||
|
||||
static void write_tcs_reg(const struct rsc_drv *drv, int reg, int tcs_id,
|
||||
u32 data)
|
||||
{
|
||||
writel_relaxed(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg +
|
||||
RSC_DRV_CMD_OFFSET * cmd_id);
|
||||
writel_relaxed(data, tcs_reg_addr(drv, reg, tcs_id));
|
||||
}
|
||||
|
||||
static void write_tcs_reg(struct rsc_drv *drv, int reg, int tcs_id, u32 data)
|
||||
{
|
||||
writel_relaxed(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg);
|
||||
}
|
||||
|
||||
static void write_tcs_reg_sync(struct rsc_drv *drv, int reg, int tcs_id,
|
||||
static void write_tcs_reg_sync(const struct rsc_drv *drv, int reg, int tcs_id,
|
||||
u32 data)
|
||||
{
|
||||
writel(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg);
|
||||
writel(data, tcs_reg_addr(drv, reg, tcs_id));
|
||||
for (;;) {
|
||||
if (data == readl(drv->tcs_base + reg +
|
||||
RSC_DRV_TCS_OFFSET * tcs_id))
|
||||
if (data == readl(tcs_reg_addr(drv, reg, tcs_id)))
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user