Lines Matching full:vpu

15 	struct vdec_vpu_inst *vpu = (struct vdec_vpu_inst *)  in handle_init_ack_msg()  local
18 mtk_vcodec_debug(vpu, "+ ap_inst_addr = 0x%llx", msg->ap_inst_addr); in handle_init_ack_msg()
20 /* mapping VPU address to kernel virtual address */ in handle_init_ack_msg()
21 /* the content in vsi is initialized to 0 in VPU */ in handle_init_ack_msg()
22 vpu->vsi = mtk_vcodec_fw_map_dm_addr(vpu->ctx->dev->fw_handler, in handle_init_ack_msg()
24 vpu->inst_addr = msg->vpu_inst_addr; in handle_init_ack_msg()
26 mtk_vcodec_debug(vpu, "- vpu_inst_addr = 0x%x", vpu->inst_addr); in handle_init_ack_msg()
30 * vpu_dec_ipi_handler - Handler for VPU ipi message.
37 * from VPU.
42 struct vdec_vpu_inst *vpu = (struct vdec_vpu_inst *) in vpu_dec_ipi_handler() local
45 mtk_vcodec_debug(vpu, "+ id=%X", msg->msg_id); in vpu_dec_ipi_handler()
60 mtk_vcodec_err(vpu, "invalid msg=%X", msg->msg_id); in vpu_dec_ipi_handler()
65 mtk_vcodec_debug(vpu, "- id=%X", msg->msg_id); in vpu_dec_ipi_handler()
66 vpu->failure = msg->status; in vpu_dec_ipi_handler()
67 vpu->signaled = 1; in vpu_dec_ipi_handler()
70 static int vcodec_vpu_send_msg(struct vdec_vpu_inst *vpu, void *msg, int len) in vcodec_vpu_send_msg() argument
74 mtk_vcodec_debug(vpu, "id=%X", *(uint32_t *)msg); in vcodec_vpu_send_msg()
76 vpu->failure = 0; in vcodec_vpu_send_msg()
77 vpu->signaled = 0; in vcodec_vpu_send_msg()
79 err = mtk_vcodec_fw_ipi_send(vpu->ctx->dev->fw_handler, vpu->id, msg, in vcodec_vpu_send_msg()
82 mtk_vcodec_err(vpu, "send fail vpu_id=%d msg_id=%X status=%d", in vcodec_vpu_send_msg()
83 vpu->id, *(uint32_t *)msg, err); in vcodec_vpu_send_msg()
87 return vpu->failure; in vcodec_vpu_send_msg()
90 static int vcodec_send_ap_ipi(struct vdec_vpu_inst *vpu, unsigned int msg_id) in vcodec_send_ap_ipi() argument
95 mtk_vcodec_debug(vpu, "+ id=%X", msg_id); in vcodec_send_ap_ipi()
99 msg.vpu_inst_addr = vpu->inst_addr; in vcodec_send_ap_ipi()
101 err = vcodec_vpu_send_msg(vpu, &msg, sizeof(msg)); in vcodec_send_ap_ipi()
102 mtk_vcodec_debug(vpu, "- id=%X ret=%d", msg_id, err); in vcodec_send_ap_ipi()
106 int vpu_dec_init(struct vdec_vpu_inst *vpu) in vpu_dec_init() argument
111 mtk_vcodec_debug_enter(vpu); in vpu_dec_init()
113 init_waitqueue_head(&vpu->wq); in vpu_dec_init()
114 vpu->handler = vpu_dec_ipi_handler; in vpu_dec_init()
116 err = mtk_vcodec_fw_ipi_register(vpu->ctx->dev->fw_handler, vpu->id, in vpu_dec_init()
117 vpu->handler, "vdec", NULL); in vpu_dec_init()
119 mtk_vcodec_err(vpu, "vpu_ipi_register fail status=%d", err); in vpu_dec_init()
125 msg.ap_inst_addr = (unsigned long)vpu; in vpu_dec_init()
127 mtk_vcodec_debug(vpu, "vdec_inst=%p", vpu); in vpu_dec_init()
129 err = vcodec_vpu_send_msg(vpu, (void *)&msg, sizeof(msg)); in vpu_dec_init()
130 mtk_vcodec_debug(vpu, "- ret=%d", err); in vpu_dec_init()
134 int vpu_dec_start(struct vdec_vpu_inst *vpu, uint32_t *data, unsigned int len) in vpu_dec_start() argument
140 mtk_vcodec_debug_enter(vpu); in vpu_dec_start()
143 mtk_vcodec_err(vpu, "invalid len = %d\n", len); in vpu_dec_start()
149 msg.vpu_inst_addr = vpu->inst_addr; in vpu_dec_start()
154 err = vcodec_vpu_send_msg(vpu, (void *)&msg, sizeof(msg)); in vpu_dec_start()
155 mtk_vcodec_debug(vpu, "- ret=%d", err); in vpu_dec_start()
159 int vpu_dec_end(struct vdec_vpu_inst *vpu) in vpu_dec_end() argument
161 return vcodec_send_ap_ipi(vpu, AP_IPIMSG_DEC_END); in vpu_dec_end()
164 int vpu_dec_deinit(struct vdec_vpu_inst *vpu) in vpu_dec_deinit() argument
166 return vcodec_send_ap_ipi(vpu, AP_IPIMSG_DEC_DEINIT); in vpu_dec_deinit()
169 int vpu_dec_reset(struct vdec_vpu_inst *vpu) in vpu_dec_reset() argument
171 return vcodec_send_ap_ipi(vpu, AP_IPIMSG_DEC_RESET); in vpu_dec_reset()