Lines Matching full:id
50 void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd, int graceful) in msm_dmov_stop_cmd() argument
52 writel((graceful << 31), DMOV_FLUSH0(id)); in msm_dmov_stop_cmd()
55 void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd) in msm_dmov_enqueue_cmd() argument
64 status = readl(DMOV_STATUS(id)); in msm_dmov_enqueue_cmd()
65 if (list_empty(&ready_commands[id]) && in msm_dmov_enqueue_cmd()
68 if (list_empty(&active_commands[id])) { in msm_dmov_enqueue_cmd()
69 PRINT_FLOW("msm_dmov_enqueue_cmd(%d), enable interrupt\n", id); in msm_dmov_enqueue_cmd()
70 writel(DMOV_CONFIG_IRQ_EN, DMOV_CONFIG(id)); in msm_dmov_enqueue_cmd()
75 PRINT_IO("msm_dmov_enqueue_cmd(%d), start command, status %x\n", id, status); in msm_dmov_enqueue_cmd()
76 list_add_tail(&cmd->list, &active_commands[id]); in msm_dmov_enqueue_cmd()
79 channel_active |= 1U << id; in msm_dmov_enqueue_cmd()
80 writel(cmd->cmdptr, DMOV_CMD_PTR(id)); in msm_dmov_enqueue_cmd()
84 if (list_empty(&active_commands[id])) in msm_dmov_enqueue_cmd()
85 PRINT_ERROR("msm_dmov_enqueue_cmd(%d), error datamover stalled, status %x\n", id, status); in msm_dmov_enqueue_cmd()
87 PRINT_IO("msm_dmov_enqueue_cmd(%d), enqueue command, status %x\n", id, status); in msm_dmov_enqueue_cmd()
88 list_add_tail(&cmd->list, &ready_commands[id]); in msm_dmov_enqueue_cmd()
96 unsigned id; member
114 int msm_dmov_exec_cmd(unsigned id, unsigned int cmdptr) in msm_dmov_exec_cmd() argument
118 PRINT_FLOW("dmov_exec_cmdptr(%d, %x)\n", id, cmdptr); in msm_dmov_exec_cmd()
123 cmd.id = id; in msm_dmov_exec_cmd()
126 msm_dmov_enqueue_cmd(id, &cmd.dmov_cmd); in msm_dmov_exec_cmd()
130 PRINT_ERROR("dmov_exec_cmdptr(%d): ERROR, result: %x\n", id, cmd.result); in msm_dmov_exec_cmd()
132 id, cmd.err.flush[0], cmd.err.flush[1], cmd.err.flush[2], cmd.err.flush[3]); in msm_dmov_exec_cmd()
135 PRINT_FLOW("dmov_exec_cmdptr(%d, %x) done\n", id, cmdptr); in msm_dmov_exec_cmd()
142 unsigned int int_status, mask, id; in msm_datamover_irq_handler() local
155 id = fls(mask) - 1; in msm_datamover_irq_handler()
156 PRINT_FLOW("msm_datamover_irq_handler %08x %08x id %d\n", int_status, mask, id); in msm_datamover_irq_handler()
158 ch_status = readl(DMOV_STATUS(id)); in msm_datamover_irq_handler()
160 PRINT_FLOW("msm_datamover_irq_handler id %d, result not valid %x\n", id, ch_status); in msm_datamover_irq_handler()
164 ch_result = readl(DMOV_RSLT(id)); in msm_datamover_irq_handler()
165 if (list_empty(&active_commands[id])) { in msm_datamover_irq_handler()
166 PRINT_ERROR("msm_datamover_irq_handler id %d, got result " in msm_datamover_irq_handler()
168 id, ch_status, ch_result); in msm_datamover_irq_handler()
171 cmd = list_entry(active_commands[id].next, typeof(*cmd), list); in msm_datamover_irq_handler()
172 PRINT_FLOW("msm_datamover_irq_handler id %d, status %x, result %x\n", id, ch_status, ch_result); in msm_datamover_irq_handler()
174 PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", in msm_datamover_irq_handler()
175 id, ch_status); in msm_datamover_irq_handler()
176 PRINT_IO("msm_datamover_irq_handler id %d, got result " in msm_datamover_irq_handler()
177 "for %p, result %x\n", id, cmd, ch_result); in msm_datamover_irq_handler()
187 errdata.flush[0] = readl(DMOV_FLUSH0(id)); in msm_datamover_irq_handler()
188 errdata.flush[1] = readl(DMOV_FLUSH1(id)); in msm_datamover_irq_handler()
189 errdata.flush[2] = readl(DMOV_FLUSH2(id)); in msm_datamover_irq_handler()
190 errdata.flush[3] = readl(DMOV_FLUSH3(id)); in msm_datamover_irq_handler()
191 errdata.flush[4] = readl(DMOV_FLUSH4(id)); in msm_datamover_irq_handler()
192 errdata.flush[5] = readl(DMOV_FLUSH5(id)); in msm_datamover_irq_handler()
193 PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); in msm_datamover_irq_handler()
194 …PRINT_FLOW("msm_datamover_irq_handler id %d, flush, result %x, flush0 %x\n", id, ch_result, errdat… in msm_datamover_irq_handler()
204 errdata.flush[0] = readl(DMOV_FLUSH0(id)); in msm_datamover_irq_handler()
205 errdata.flush[1] = readl(DMOV_FLUSH1(id)); in msm_datamover_irq_handler()
206 errdata.flush[2] = readl(DMOV_FLUSH2(id)); in msm_datamover_irq_handler()
207 errdata.flush[3] = readl(DMOV_FLUSH3(id)); in msm_datamover_irq_handler()
208 errdata.flush[4] = readl(DMOV_FLUSH4(id)); in msm_datamover_irq_handler()
209 errdata.flush[5] = readl(DMOV_FLUSH5(id)); in msm_datamover_irq_handler()
211 PRINT_ERROR("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); in msm_datamover_irq_handler()
212 …PRINT_ERROR("msm_datamover_irq_handler id %d, error, result %x, flush0 %x\n", id, ch_result, errda… in msm_datamover_irq_handler()
220 writel(0, DMOV_FLUSH0(id)); in msm_datamover_irq_handler()
222 ch_status = readl(DMOV_STATUS(id)); in msm_datamover_irq_handler()
223 PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); in msm_datamover_irq_handler()
224 if ((ch_status & DMOV_STATUS_CMD_PTR_RDY) && !list_empty(&ready_commands[id])) { in msm_datamover_irq_handler()
225 cmd = list_entry(ready_commands[id].next, typeof(*cmd), list); in msm_datamover_irq_handler()
227 list_add_tail(&cmd->list, &active_commands[id]); in msm_datamover_irq_handler()
230 PRINT_FLOW("msm_datamover_irq_handler id %d, start command\n", id); in msm_datamover_irq_handler()
231 writel(cmd->cmdptr, DMOV_CMD_PTR(id)); in msm_datamover_irq_handler()
234 if (list_empty(&active_commands[id]) && list_empty(&ready_commands[id])) in msm_datamover_irq_handler()
235 channel_active &= ~(1U << id); in msm_datamover_irq_handler()
236 PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); in msm_datamover_irq_handler()