Lines Matching +full:1 +full:mb
22 #define API_FAST (1 << 2) /* Short timeout */
23 #define API_SLOW (1 << 3) /* Additional 300ms timeout */
91 /* Call with buf of n*11+1 bytes */
105 static void dump_mb(struct cx18 *cx, struct cx18_mailbox *mb, char *name) in dump_mb() argument
107 char argstr[MAX_MB_ARGUMENTS*11+1]; in dump_mb()
113 name, mb->request, mb->ack, mb->cmd, mb->error, in dump_mb()
114 u32arr2hex(mb->args, MAX_MB_ARGUMENTS, argstr)); in dump_mb()
187 dispatch = 1; in cx18_mdl_send_to_vb2()
234 struct cx18_mailbox *mb; in epu_dma_done() local
240 mb = &order->mb; in epu_dma_done()
241 handle = mb->args[0]; in epu_dma_done()
248 "stale" : "good", mb->request); in epu_dma_done()
252 mdl_ack_count = mb->args[2]; in epu_dma_done()
281 mb->request); in epu_dma_done()
320 if (s->id != -1) in epu_dma_done()
329 CX18_DEBUG_INFO("%x %s\n", order->mb.args[0], str); in epu_debug()
332 CX18_INFO("FW version: %s\n", p - 1); in epu_debug()
340 switch (order->mb.cmd) { in epu_cmd()
349 order->mb.cmd); in epu_cmd()
356 order->mb.cmd); in epu_cmd()
399 order->rpu, order->mb.cmd); in mb_ack_irq()
403 req = order->mb.request; in mb_ack_irq()
420 struct cx18_mailbox *mb; in epu_dma_done_irq() local
423 mb = &order->mb; in epu_dma_done_irq()
424 handle = mb->args[0]; in epu_dma_done_irq()
425 mdl_ack_offset = mb->args[1]; in epu_dma_done_irq()
426 mdl_ack_count = mb->args[2]; in epu_dma_done_irq()
432 return -1; in epu_dma_done_irq()
441 return 1; in epu_dma_done_irq()
451 str_offset = order->mb.args[1]; in epu_debug_irq()
462 return str_offset ? 1 : 0; in epu_debug_irq()
468 int ret = -1; in epu_cmd_irq()
473 switch (order->mb.cmd) { in epu_cmd_irq()
482 order->mb.cmd); in epu_cmd_irq()
489 order->mb.cmd); in epu_cmd_irq()
507 * 1. Any work handler thread only clears "pending" and only in alloc_in_work_order_irq()
514 atomic_set(&order->pending, 1); in alloc_in_work_order_irq()
523 struct cx18_mailbox __iomem *mb; in cx18_api_epu_cmd_irq() local
531 mb = &cx->scb->cpu2epu_mb; in cx18_api_epu_cmd_irq()
534 mb = &cx->scb->apu2epu_mb; in cx18_api_epu_cmd_irq()
548 order_mb = &order->mb; in cx18_api_epu_cmd_irq()
550 /* mb->cmd and mb->args[0] through mb->args[2] */ in cx18_api_epu_cmd_irq()
552 (&order_mb->cmd)[i] = cx18_readl(cx, &mb->cmd + i); in cx18_api_epu_cmd_irq()
554 /* mb->request and mb->ack. N.B. we want to read mb->ack last */ in cx18_api_epu_cmd_irq()
556 (&order_mb->request)[i] = cx18_readl(cx, &mb->request + i); in cx18_api_epu_cmd_irq()
585 struct cx18_mailbox __iomem *mb; in cx18_api_call() local
590 char argstr[MAX_MB_ARGUMENTS*11+1]; in cx18_api_call()
615 mb = &cx->scb->epu2apu_mb; in cx18_api_call()
621 mb = &cx->scb->epu2cpu_mb; in cx18_api_call()
639 req = cx18_readl(cx, &mb->request); in cx18_api_call()
642 (ack = cx18_readl(cx, &mb->ack)) == req, in cx18_api_call()
646 cx18_writel(cx, req, &mb->ack); in cx18_api_call()
654 req = ((req & 0xfffffffe) == 0xfffffffe) ? 1 : req + 1; in cx18_api_call()
656 cx18_writel(cx, cmd, &mb->cmd); in cx18_api_call()
658 cx18_writel(cx, data[i], &mb->args[i]); in cx18_api_call()
659 cx18_writel(cx, 0, &mb->error); in cx18_api_call()
660 cx18_writel(cx, req, &mb->request); in cx18_api_call()
661 cx18_writel(cx, req - 1, &mb->ack); /* ensure ack & req are distinct */ in cx18_api_call()
676 ack = cx18_readl(cx, &mb->ack); in cx18_api_call()
680 ack = cx18_readl(cx, &mb->ack); in cx18_api_call()
711 data[i] = cx18_readl(cx, &mb->args[i]); in cx18_api_call()
712 err = cx18_readl(cx, &mb->error); in cx18_api_call()
740 mode = (cx->filter_mode & 1) ? 2 : (cx->spatial_strength ? 1 : 0); in cx18_set_filter_param()
742 s->handle, 1, mode, cx->spatial_strength); in cx18_set_filter_param()
743 mode = (cx->filter_mode & 2) ? 2 : (cx->temporal_strength ? 1 : 0); in cx18_set_filter_param()
765 s->handle, data[1], data[0]); in cx18_api_func()
775 s->handle, data[0], data[1]); in cx18_api_func()
786 s->handle, data[0], data[1], data[2], data[3]); in cx18_api_func()
795 s->handle, data[0], data[1], data[2]); in cx18_api_func()
797 cx->filter_mode = (data[0] & 3) | (data[1] << 2); in cx18_api_func()
801 cx->temporal_strength = data[1]; in cx18_api_func()
805 s->handle, data[0], data[1]); in cx18_api_func()
808 s->handle, data[0], data[1], data[2], data[3]); in cx18_api_func()