Lines Matching defs:core

38 	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
73 vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
86 vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
96 vpu_iface_unpack_msg_data(inst->core, pkt, &fs);
102 if (inst->core->type == VPU_CORE_TYPE_ENC) {
106 vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info.sequence);
110 } else if (inst->core->type == VPU_CORE_TYPE_DEC) {
113 vpu_iface_unpack_msg_data(inst->core, pkt, &fs);
128 vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
138 vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
139 if (inst->core->type == VPU_CORE_TYPE_DEC)
171 vpu_core_type_desc(inst->core->type), str);
173 set_bit(inst->id, &inst->core->hang_mask);
225 ret = vpu_iface_convert_msg_id(inst->core, msg->hdr.id);
295 dev_err(inst->dev, "[%d:%d]overflow: %d\n", inst->core->id, inst->id, id);
299 static int vpu_handle_msg(struct vpu_core *core)
306 while (!vpu_iface_receive_msg(core, &pkt)) {
307 dev_dbg(core->dev, "event index = %d, id = %d, num = %d\n",
310 ret = vpu_iface_convert_msg_id(core, pkt.hdr.id);
314 inst = vpu_core_find_instance(core, pkt.hdr.index);
317 mutex_lock(&core->cmd_lock);
319 mutex_unlock(&core->cmd_lock);
330 static int vpu_isr_thread(struct vpu_core *core, u32 irq_code)
332 dev_dbg(core->dev, "irq code = 0x%x\n", irq_code);
335 vpu_mbox_send_msg(core, PRC_BUF_OFFSET, core->rpc.phys - core->fw.phys);
336 vpu_mbox_send_msg(core, BOOT_ADDRESS, core->fw.phys);
337 vpu_mbox_send_msg(core, INIT_DONE, 2);
344 vpu_handle_msg(core);
351 static void vpu_core_run_msg_work(struct vpu_core *core)
355 while (kfifo_len(&core->msg_fifo) >= SIZE) {
358 if (kfifo_out(&core->msg_fifo, &data, SIZE) == SIZE)
359 vpu_isr_thread(core, data);
365 struct vpu_core *core = container_of(work, struct vpu_core, msg_work);
368 vpu_core_run_msg_work(core);
369 queue_delayed_work(core->workqueue, &core->msg_delayed_work, delay);
374 struct vpu_core *core;
383 core = container_of(dwork, struct vpu_core, msg_delayed_work);
384 if (kfifo_len(&core->msg_fifo) >= bytes)
385 vpu_core_run_msg_work(core);
388 for (i = 0; i < core->supported_instance_count; i++) {
389 struct vpu_inst *inst = vpu_core_find_instance(core, i);
401 int vpu_isr(struct vpu_core *core, u32 irq)
407 complete(&core->cmp);
410 complete(&core->cmp);
416 if (kfifo_in(&core->msg_fifo, &irq, sizeof(irq)) != sizeof(irq))
417 dev_err(core->dev, "[%d]overflow: %d\n", core->id, irq);
418 queue_work(core->workqueue, &core->msg_work);