Lines Matching refs:cmd_q
123 if (ccp->cmd_q[i].active) in ccp_enqueue_cmd()
135 wake_up_process(ccp->cmd_q[i].kthread); in ccp_enqueue_cmd()
157 if (ccp->cmd_q[i].active) in ccp_do_cmd_backlog()
167 wake_up_process(ccp->cmd_q[i].kthread); in ccp_do_cmd_backlog()
170 static struct ccp_cmd *ccp_dequeue_cmd(struct ccp_cmd_queue *cmd_q) in ccp_dequeue_cmd() argument
172 struct ccp_device *ccp = cmd_q->ccp; in ccp_dequeue_cmd()
179 cmd_q->active = 0; in ccp_dequeue_cmd()
182 cmd_q->suspended = 1; in ccp_dequeue_cmd()
191 cmd_q->active = 1; in ccp_dequeue_cmd()
226 struct ccp_cmd_queue *cmd_q = (struct ccp_cmd_queue *)data; in ccp_cmd_queue_thread() local
239 cmd = ccp_dequeue_cmd(cmd_q); in ccp_cmd_queue_thread()
246 cmd->ret = ccp_run_cmd(cmd_q, cmd); in ccp_cmd_queue_thread()
323 struct ccp_cmd_queue *cmd_q; in ccp_init() local
347 cmd_q = &ccp->cmd_q[ccp->cmd_q_count]; in ccp_init()
350 cmd_q->ccp = ccp; in ccp_init()
351 cmd_q->id = i; in ccp_init()
352 cmd_q->dma_pool = dma_pool; in ccp_init()
355 cmd_q->ksb_key = KSB_START + ccp->ksb_start++; in ccp_init()
356 cmd_q->ksb_ctx = KSB_START + ccp->ksb_start++; in ccp_init()
362 cmd_q->reg_status = ccp->io_regs + CMD_Q_STATUS_BASE + in ccp_init()
364 cmd_q->reg_int_status = ccp->io_regs + CMD_Q_INT_STATUS_BASE + in ccp_init()
366 cmd_q->int_ok = 1 << (i * 2); in ccp_init()
367 cmd_q->int_err = 1 << ((i * 2) + 1); in ccp_init()
369 cmd_q->free_slots = CMD_Q_DEPTH(ioread32(cmd_q->reg_status)); in ccp_init()
371 init_waitqueue_head(&cmd_q->int_queue); in ccp_init()
374 qim |= cmd_q->int_ok | cmd_q->int_err; in ccp_init()
394 cmd_q = &ccp->cmd_q[i]; in ccp_init()
396 ioread32(cmd_q->reg_int_status); in ccp_init()
397 ioread32(cmd_q->reg_status); in ccp_init()
416 cmd_q = &ccp->cmd_q[i]; in ccp_init()
418 kthread = kthread_create(ccp_cmd_queue_thread, cmd_q, in ccp_init()
419 "ccp-q%u", cmd_q->id); in ccp_init()
427 cmd_q->kthread = kthread; in ccp_init()
450 if (ccp->cmd_q[i].kthread) in ccp_init()
451 kthread_stop(ccp->cmd_q[i].kthread); in ccp_init()
457 dma_pool_destroy(ccp->cmd_q[i].dma_pool); in ccp_init()
469 struct ccp_cmd_queue *cmd_q; in ccp_destroy() local
481 if (ccp->cmd_q[i].kthread) in ccp_destroy()
482 kthread_stop(ccp->cmd_q[i].kthread); in ccp_destroy()
487 cmd_q = &ccp->cmd_q[i]; in ccp_destroy()
488 qim |= cmd_q->int_ok | cmd_q->int_err; in ccp_destroy()
494 cmd_q = &ccp->cmd_q[i]; in ccp_destroy()
496 ioread32(cmd_q->reg_int_status); in ccp_destroy()
497 ioread32(cmd_q->reg_status); in ccp_destroy()
504 dma_pool_destroy(ccp->cmd_q[i].dma_pool); in ccp_destroy()
531 struct ccp_cmd_queue *cmd_q; in ccp_irq_handler() local
538 cmd_q = &ccp->cmd_q[i]; in ccp_irq_handler()
540 q_int = status & (cmd_q->int_ok | cmd_q->int_err); in ccp_irq_handler()
542 cmd_q->int_status = status; in ccp_irq_handler()
543 cmd_q->q_status = ioread32(cmd_q->reg_status); in ccp_irq_handler()
544 cmd_q->q_int_status = ioread32(cmd_q->reg_int_status); in ccp_irq_handler()
547 if ((q_int & cmd_q->int_err) && !cmd_q->cmd_error) in ccp_irq_handler()
548 cmd_q->cmd_error = CMD_Q_ERROR(cmd_q->q_status); in ccp_irq_handler()
550 cmd_q->int_rcvd = 1; in ccp_irq_handler()
554 wake_up_interruptible(&cmd_q->int_queue); in ccp_irq_handler()
571 if (ccp->cmd_q[i].suspended) in ccp_queues_suspended()