|
137 | 137 | * +---------------------------------------------------+
|
138 | 138 | */
|
139 | 139 |
|
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) |
141 | 142 | {
|
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; |
144 | 144 | }
|
145 | 145 |
|
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) |
147 | 148 | {
|
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; |
149 | 150 | }
|
150 | 151 |
|
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) |
153 | 159 | {
|
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)); |
156 | 161 | }
|
157 | 162 |
|
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) |
159 | 171 | {
|
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)); |
161 | 173 | }
|
162 | 174 |
|
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, |
164 | 176 | u32 data)
|
165 | 177 | {
|
166 |
| - writel(data, drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg); |
| 178 | + writel(data, tcs_reg_addr(drv, reg, tcs_id)); |
167 | 179 | 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))) |
170 | 181 | break;
|
171 | 182 | udelay(1);
|
172 | 183 | }
|
|
0 commit comments