Lines Matching refs:tcs_id

143 tcs_reg_addr(const struct rsc_drv *drv, int reg, int tcs_id)  in tcs_reg_addr()  argument
145 return drv->tcs_base + RSC_DRV_TCS_OFFSET * tcs_id + reg; in tcs_reg_addr()
149 tcs_cmd_addr(const struct rsc_drv *drv, int reg, int tcs_id, int cmd_id) in tcs_cmd_addr() argument
151 return tcs_reg_addr(drv, reg, tcs_id) + RSC_DRV_CMD_OFFSET * cmd_id; in tcs_cmd_addr()
154 static u32 read_tcs_cmd(const struct rsc_drv *drv, int reg, int tcs_id, in read_tcs_cmd() argument
157 return readl_relaxed(tcs_cmd_addr(drv, reg, tcs_id, cmd_id)); in read_tcs_cmd()
160 static u32 read_tcs_reg(const struct rsc_drv *drv, int reg, int tcs_id) in read_tcs_reg() argument
162 return readl_relaxed(tcs_reg_addr(drv, reg, tcs_id)); in read_tcs_reg()
165 static void write_tcs_cmd(const struct rsc_drv *drv, int reg, int tcs_id, in write_tcs_cmd() argument
168 writel_relaxed(data, tcs_cmd_addr(drv, reg, tcs_id, cmd_id)); in write_tcs_cmd()
171 static void write_tcs_reg(const struct rsc_drv *drv, int reg, int tcs_id, in write_tcs_reg() argument
174 writel_relaxed(data, tcs_reg_addr(drv, reg, tcs_id)); in write_tcs_reg()
177 static void write_tcs_reg_sync(const struct rsc_drv *drv, int reg, int tcs_id, in write_tcs_reg_sync() argument
182 writel(data, tcs_reg_addr(drv, reg, tcs_id)); in write_tcs_reg_sync()
189 if (readl(tcs_reg_addr(drv, reg, tcs_id)) == data) in write_tcs_reg_sync()
194 data, tcs_id, reg); in write_tcs_reg_sync()
299 int tcs_id) in get_req_from_tcs() argument
306 if (tcs->mask & BIT(tcs_id)) in get_req_from_tcs()
307 return tcs->req[tcs_id - tcs->offset]; in get_req_from_tcs()
330 static void __tcs_set_trigger(struct rsc_drv *drv, int tcs_id, bool trigger) in __tcs_set_trigger() argument
339 enable = read_tcs_reg(drv, RSC_DRV_CONTROL, tcs_id); in __tcs_set_trigger()
341 write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable); in __tcs_set_trigger()
343 write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable); in __tcs_set_trigger()
348 write_tcs_reg_sync(drv, RSC_DRV_CONTROL, tcs_id, enable); in __tcs_set_trigger()
350 write_tcs_reg(drv, RSC_DRV_CONTROL, tcs_id, enable); in __tcs_set_trigger()
363 static void enable_tcs_irq(struct rsc_drv *drv, int tcs_id, bool enable) in enable_tcs_irq() argument
369 data |= BIT(tcs_id); in enable_tcs_irq()
371 data &= ~BIT(tcs_id); in enable_tcs_irq()
456 static void __tcs_buffer_write(struct rsc_drv *drv, int tcs_id, int cmd_id, in __tcs_buffer_write() argument
478 write_tcs_cmd(drv, RSC_DRV_CMD_MSGID, tcs_id, j, msgid); in __tcs_buffer_write()
479 write_tcs_cmd(drv, RSC_DRV_CMD_ADDR, tcs_id, j, cmd->addr); in __tcs_buffer_write()
480 write_tcs_cmd(drv, RSC_DRV_CMD_DATA, tcs_id, j, cmd->data); in __tcs_buffer_write()
481 trace_rpmh_send_msg(drv, tcs_id, j, msgid, cmd); in __tcs_buffer_write()
484 cmd_enable |= read_tcs_reg(drv, RSC_DRV_CMD_ENABLE, tcs_id); in __tcs_buffer_write()
485 write_tcs_reg(drv, RSC_DRV_CMD_ENABLE, tcs_id, cmd_enable); in __tcs_buffer_write()
609 int tcs_id; in rpmh_rsc_send_data() local
620 (tcs_id = claim_tcs_for_req(drv, tcs, msg)) >= 0, in rpmh_rsc_send_data()
623 tcs->req[tcs_id - tcs->offset] = msg; in rpmh_rsc_send_data()
624 set_bit(tcs_id, drv->tcs_in_use); in rpmh_rsc_send_data()
631 write_tcs_reg_sync(drv, RSC_DRV_CMD_ENABLE, tcs_id, 0); in rpmh_rsc_send_data()
632 enable_tcs_irq(drv, tcs_id, true); in rpmh_rsc_send_data()
644 __tcs_buffer_write(drv, tcs_id, 0, msg); in rpmh_rsc_send_data()
645 __tcs_set_trigger(drv, tcs_id, true); in rpmh_rsc_send_data()
666 int *tcs_id, int *cmd_id) in find_slots() argument
683 *tcs_id = offset + tcs->offset; in find_slots()
705 int tcs_id = 0, cmd_id = 0; in rpmh_rsc_write_ctrl_data() local
713 ret = find_slots(tcs, msg, &tcs_id, &cmd_id); in rpmh_rsc_write_ctrl_data()
715 __tcs_buffer_write(drv, tcs_id, cmd_id, msg); in rpmh_rsc_write_ctrl_data()