Lines Matching +full:0 +full:x3200
23 #define CMDQ_OP_CODE_MASK (0xff << CMDQ_OP_CODE_SHIFT)
27 #define CMDQ_CURR_IRQ_STATUS 0x10
28 #define CMDQ_SYNC_TOKEN_UPDATE 0x68
29 #define CMDQ_THR_SLOT_CYCLES 0x30
30 #define CMDQ_THR_BASE 0x100
31 #define CMDQ_THR_SIZE 0x80
32 #define CMDQ_THR_WARM_RESET 0x00
33 #define CMDQ_THR_ENABLE_TASK 0x04
34 #define CMDQ_THR_SUSPEND_TASK 0x08
35 #define CMDQ_THR_CURR_STATUS 0x0c
36 #define CMDQ_THR_IRQ_STATUS 0x10
37 #define CMDQ_THR_IRQ_ENABLE 0x14
38 #define CMDQ_THR_CURR_ADDR 0x20
39 #define CMDQ_THR_END_ADDR 0x24
40 #define CMDQ_THR_WAIT_TOKEN 0x30
41 #define CMDQ_THR_PRIORITY 0x40
43 #define GCE_GCTL_VALUE 0x48
44 #define GCE_CTRL_BY_SW GENMASK(2, 0)
47 #define CMDQ_THR_ACTIVE_SLOT_CYCLES 0x3200
48 #define CMDQ_THR_ENABLED 0x1
49 #define CMDQ_THR_DISABLED 0x0
50 #define CMDQ_THR_SUSPEND 0x1
51 #define CMDQ_THR_RESUME 0x0
53 #define CMDQ_THR_DO_WARM_RESET BIT(0)
54 #define CMDQ_THR_IRQ_DONE 0x1
55 #define CMDQ_THR_IRQ_ERROR 0x12
59 #define CMDQ_JUMP_BY_OFFSET 0x10000000
60 #define CMDQ_JUMP_BY_PA 0x10000001
124 return 0; in cmdq_thread_suspend()
127 status, status & CMDQ_THR_STATUS_SUSPENDED, 0, 10)) { in cmdq_thread_suspend()
128 dev_err(cmdq->mbox.dev, "suspend GCE thread 0x%x failed\n", in cmdq_thread_suspend()
133 return 0; in cmdq_thread_suspend()
144 u32 gctl_regval = 0; in cmdq_init()
156 for (i = 0; i <= CMDQ_MAX_EVENT; i++) in cmdq_init()
168 0, 10)) { in cmdq_thread_reset()
169 dev_err(cmdq->mbox.dev, "reset GCE thread 0x%x failed\n", in cmdq_thread_reset()
174 return 0; in cmdq_thread_reset()
232 dev_err(cmdq->mbox.dev, "task 0x%p error\n", task); in cmdq_task_handle_error()
233 WARN_ON(cmdq_thread_suspend(cmdq, thread) < 0); in cmdq_task_handle_error()
277 cmdq_task_exec_done(task, 0); in cmdq_thread_irq_handler()
296 unsigned long irq_status, flags = 0L; in cmdq_irq_handler()
328 return 0; in cmdq_runtime_suspend()
340 for (i = 0; i < cmdq->pdata->thread_nr; i++) { in cmdq_suspend()
367 return 0; in cmdq_resume()
396 if (ret < 0) in cmdq_mbox_send_data()
413 * The thread reset will clear thread related register to 0, in cmdq_mbox_send_data()
418 WARN_ON(cmdq_thread_reset(cmdq, thread) < 0); in cmdq_mbox_send_data()
429 WARN_ON(cmdq_thread_suspend(cmdq, thread) < 0); in cmdq_mbox_send_data()
453 return 0; in cmdq_mbox_send_data()
458 return 0; in cmdq_mbox_startup()
474 WARN_ON(cmdq_thread_suspend(cmdq, thread) < 0); in cmdq_mbox_shutdown()
513 if (ret < 0) in cmdq_mbox_flush()
520 WARN_ON(cmdq_thread_suspend(cmdq, thread) < 0); in cmdq_mbox_flush()
541 return 0; in cmdq_mbox_flush()
547 enable, enable == 0, 1, timeout)) { in cmdq_mbox_flush()
548 dev_err(cmdq->mbox.dev, "Fail to wait GCE thread 0x%x done\n", in cmdq_mbox_flush()
555 return 0; in cmdq_mbox_flush()
568 int ind = sp->args[0]; in cmdq_xlate()
588 int alias_id = 0; in cmdq_probe()
596 cmdq->base = devm_platform_ioremap_resource(pdev, 0); in cmdq_probe()
600 cmdq->irq = platform_get_irq(pdev, 0); in cmdq_probe()
601 if (cmdq->irq < 0) in cmdq_probe()
610 cmdq->irq_mask = GENMASK(cmdq->pdata->thread_nr - 1, 0); in cmdq_probe()
612 dev_dbg(dev, "cmdq device: addr:0x%p, va:0x%p, irq:%d\n", in cmdq_probe()
618 if (alias_id >= 0 && alias_id < cmdq->pdata->gce_num) { in cmdq_probe()
620 cmdq->clocks[alias_id].clk = of_clk_get(node, 0); in cmdq_probe()
658 for (i = 0; i < cmdq->pdata->thread_nr; i++) { in cmdq_probe()
666 if (err < 0) { in cmdq_probe()
679 if (err < 0) { in cmdq_probe()
698 return 0; in cmdq_probe()
717 .shift = 0,
724 .shift = 0,