LumaAddr = p_data_req->phy_addr[0] + p_data_req->data_offset[0];
if (LumaAddr == addr) {
if (check_vb_is_changed(p_data_req, LumaAddr))
- vpu_dbg(LVL_ERR,
- "ctx[%d] frame buffer[%d] is changed\n",
+ vpu_err("ctx[%d] frame buffer[%d] is changed\n",
ctx->str_index, i);
break;
}
}
up(&This->drv_q_lock);
if (i == VPU_MAX_BUFFER) {
- vpu_dbg(LVL_ERR,
- "error: ctx[%d] can't find id based on address(0x%x)\n",
+ vpu_err("error: ctx[%d] can't find id based on address(0x%x)\n",
ctx->str_index, addr);
return -1;
}
struct vb2_buffer *vb;
if (buf->index >= queue->vb2_q.num_buffers) {
- vpu_dbg(LVL_ERR, "[%s] buffer index(%d) out of range\n",
+ vpu_err("[%s] buffer index(%d) out of range\n",
queue->type ? "CAPTURE" : "OUTPUT", buf->index);
return -EINVAL;
}
vb = queue->vb2_q.bufs[buf->index];
if (vb->state != VB2_BUF_STATE_DEQUEUED) {
- vpu_dbg(LVL_ERR, "[%s] buffer[%d] has been queued before\n",
+ vpu_err("[%s] buffer[%d] has been queued before\n",
queue->type ? "CAPTURE" : "OUTPUT", buf->index);
return -EINVAL;
}
GFP_KERNEL | GFP_DMA32 | __GFP_NOWARN);
if (!buffer->dma_virt) {
- vpu_dbg(LVL_ERR, "error: %s() dma buffer alloc size(%x) fail!\n",
+ vpu_err("error: %s() dma buffer alloc size(%x) fail!\n",
__func__, buffer->dma_size);
vpu_dec_event_decode_error(ctx);
return -ENOMEM;
u_int32 ret = 0;
if (index >= ARRAY_SIZE(ctx->mbi_buffer)) {
- vpu_dbg(LVL_ERR, "request mbi buffer number out of range\n");
+ vpu_err("request mbi buffer number out of range\n");
return -EINVAL;
}
if (!ctx->mbi_size) {
- vpu_dbg(LVL_ERR, "mbi buffer size is not initialized\n");
+ vpu_err("mbi buffer size is not initialized\n");
return -EINVAL;
}
mbi_buffer->dma_size = ctx->mbi_size;
ret = alloc_dma_buffer(ctx, mbi_buffer);
if (ret) {
- vpu_dbg(LVL_ERR, "error: alloc mbi buffer[%d] fail\n", index);
+ vpu_err("error: alloc mbi buffer[%d] fail\n", index);
return ret;
}
dcp_buffer->dma_size = DCP_SIZE;
ret = alloc_dma_buffer(ctx, dcp_buffer);
if (ret) {
- vpu_dbg(LVL_ERR, "error: alloc dcp buffer[%d] fail\n", index);
+ vpu_err("error: alloc dcp buffer[%d] fail\n", index);
return ret;
}
return -EINVAL;
if (vb2_is_streaming(&q_data->vb2_q)) {
- vpu_dbg(LVL_ERR, "%s reqbufs during streaming\n",
+ vpu_err("%s reqbufs during streaming\n",
q_data->type ? "CAPTURE" : "OUTPUT");
return -EINVAL;
}
if (reqbuf->count > 0 && !q_data->sizeimage[0]) {
- vpu_dbg(LVL_ERR,
- "sizeimage isn't initialized, %s reqbufs fail\n",
+ vpu_err("sizeimage isn't initialized, %s reqbufs fail\n",
q_data->type ? "CAPTURE" : "OUTPUT");
return -EINVAL;
}
buf->m.offset |= (q_data->type << MMAP_BUF_TYPE_SHIFT);
}
} else
- vpu_dbg(LVL_ERR, "error: %s() return ret=%d\n", __func__, ret);
+ vpu_err("error: %s() return ret=%d\n", __func__, ret);
return ret;
}
ctx->output_ts = input_ts;
if (down_interruptible(&ctx->tsm_lock)) {
- vpu_dbg(LVL_ERR, "%s() get tsm lock fail\n", __func__);
+ vpu_err("%s() get tsm lock fail\n", __func__);
return;
}
p_data_req->data_offset[1] = buf->m.planes[1].data_offset;
up(&q_data->drv_q_lock);
} else {
- vpu_dbg(LVL_ERR, "qbuf invalid buf type : %d\n", buf->type);
+ vpu_err("qbuf invalid buf type : %d\n", buf->type);
return -EINVAL;
}
ret = vpu_dec_queue_qbuf(q_data, buf);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s() return ret=%d\n", __func__, ret);
+ vpu_err("error: %s() return ret=%d\n", __func__, ret);
return ret;
}
v4l2_update_stream_addr(ctx, 0);
TSM_TIMESTAMP ts;
if (down_interruptible(&ctx->tsm_lock)) {
- vpu_dbg(LVL_ERR, "%s() get tsm lock fail\n", __func__);
+ vpu_err("%s() get tsm lock fail\n", __func__);
return;
}
WARN_ON(!ctx || !ctx->tsm);
if (down_interruptible(&ctx->tsm_lock)) {
- vpu_dbg(LVL_ERR, "%s() get tsm lock fail\n", __func__);
+ vpu_err("%s() get tsm lock fail\n", __func__);
return;
}
WARN_ON(!ctx || !ctx->tsm);
if (down_interruptible(&ctx->tsm_lock)) {
- vpu_dbg(LVL_ERR, "%s() get tsm lock fail\n", __func__);
+ vpu_err("%s() get tsm lock fail\n", __func__);
return;
}
ret = vpu_dec_queue_dqbuf(q_data, buf, file->f_flags & O_NONBLOCK);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s() return ret=%d\n", __func__, ret);
+ vpu_err("error: %s() return ret=%d\n", __func__, ret);
return ret;
}
if (!ret)
v4l2_update_stream_addr(ctx, 0);
else
- vpu_dbg(LVL_ERR, "error: %s() return ret=%d\n", __func__, ret);
+ vpu_err("error: %s() return ret=%d\n", __func__, ret);
if (ctx->hang_status) {
- vpu_dbg(LVL_ERR, "%s(): not succeed and some instance are blocked\n", __func__);
+ vpu_err("%s(): not succeed and some instance are blocked\n", __func__);
return -EINVAL;
}
if (ret)
ret = vpu_dec_queue_disable(q_data, i);
if (ctx->hang_status) {
- vpu_dbg(LVL_ERR, "%s(): not succeed and some instance are blocked\n", __func__);
+ vpu_err("%s(): not succeed and some instance are blocked\n", __func__);
ret = -EINVAL;
}
WARN_ON(!ctx || !ctx->tsm);
if (down_interruptible(&ctx->tsm_lock)) {
- vpu_dbg(LVL_ERR, "%s() get tsm lock fail\n", __func__);
+ vpu_err("%s() get tsm lock fail\n", __func__);
return;
}
numerator = ctx->fixed_frame_interval.numerator;
ctx->bs_h_threshold = ctrl->val;
break;
default:
- vpu_dbg(LVL_ERR, "%s() Invalid costomer control(%d)\n",
+ vpu_err("%s() Invalid costomer control(%d)\n",
__func__, ctrl->id);
return -EINVAL;
}
}
}
if (!ctrl_cfg) {
- vpu_dbg(LVL_ERR, "%s() Invalid costomer control(%d)\n",
+ vpu_err("%s() Invalid costomer control(%d)\n",
__func__, ctrl->id);
return -EINVAL;
}
ctrl->val = ctx->pSeqinfo->uVUIPresent;
break;
default:
- vpu_dbg(LVL_ERR, "%s() Invalid costomer control(%d)\n",
+ vpu_err("%s() Invalid costomer control(%d)\n",
__func__, ctrl->id);
return -EINVAL;
}
ctrl->val = ctx->pSeqinfo->uNumDPBFrms + ctx->pSeqinfo->uNumRefFrms;
break;
default:
- vpu_dbg(LVL_ERR, "%s() Invalid control(%d)\n",
+ vpu_err("%s() Invalid control(%d)\n",
__func__, ctrl->id);
return -EINVAL;
}
);
if (This->ctrl_handler.error ||
!This->ctrls[i+start]) {
- vpu_dbg(LVL_ERR, "%s() v4l2_ctrl_new_std failed(%d) This->ctrls[%d](%p)\n",
+ vpu_err("%s() v4l2_ctrl_new_std failed(%d) This->ctrls[%d](%p)\n",
__func__, This->ctrl_handler.error, i+start, This->ctrls[i+start]);
return This->ctrl_handler.error;
}
if (This->ctrl_handler.error ||
!This->ctrls[i+start]) {
- vpu_dbg(LVL_ERR, "%s() failed(%d) This->ctrls[%d](%p)\n",
+ vpu_err("%s() failed(%d) This->ctrls[%d](%p)\n",
__func__, This->ctrl_handler.error, i+start, This->ctrls[i+start]);
return This->ctrl_handler.error;
}
if (This->ctrl_handler.error ||
!This->ctrls[i+start]) {
- vpu_dbg(LVL_ERR, "%s() failed(%d) This->ctrls[%d](%p)\n",
+ vpu_err("%s() failed(%d) This->ctrls[%d](%p)\n",
__func__, This->ctrl_handler.error, i+start, This->ctrls[i+start]);
return This->ctrl_handler.error;
}
return -EINVAL;
if (CNT_CTRLS_DEC > V4L2_MAX_CTRLS) {
- vpu_dbg(LVL_ERR, "error: v4l2 decode controls added count excedds the limit\n");
+ vpu_err("error: v4l2 decode controls added count excedds the limit\n");
return -EINVAL;
}
v4l2_ctrl_handler_init(&This->ctrl_handler,
CNT_CTRLS_DEC);
if (This->ctrl_handler.error) {
- vpu_dbg(LVL_ERR, "%s() v4l2_ctrl_handler_init failed(%d)\n",
+ vpu_err("%s() v4l2_ctrl_handler_init failed(%d)\n",
__func__, This->ctrl_handler.error);
return This->ctrl_handler.error;
if (start != ctx->stream_buffer.dma_phy ||
end != ctx->stream_buffer.dma_phy + ctx->stream_buffer.dma_size) {
- vpu_dbg(LVL_ERR, "error: %s(), start or end pointer cross-border\n", __func__);
+ vpu_err("error: %s(), start or end pointer cross-border\n", __func__);
return 0;
}
if (wptr < start || wptr > end) {
- vpu_dbg(LVL_ERR, "error: %s(), wptr pointer cross-border\n", __func__);
+ vpu_err("error: %s(), wptr pointer cross-border\n", __func__);
return 0;
}
if (rptr < start || rptr > end) {
- vpu_dbg(LVL_ERR, "error: %s(), rptr pointer cross-border\n", __func__);
+ vpu_err("error: %s(), rptr pointer cross-border\n", __func__);
return 0;
}
buffer = kzalloc(SCODE_SIZE, GFP_KERNEL); //for eos data
- if (!buffer) {
- vpu_dbg(LVL_ERR, "error: eos buffer alloc fail\n");
+ if (!buffer)
return 0;
- }
+
atomic64_add(SCODE_SIZE, &ctx->statistic.total_alloc_size);
plbuffer = (uint32_t *)buffer;
if (wptr - start < ctx->stream_buffer.dma_size)
pbbuffer = (uint8_t *)(ctx->stream_buffer.dma_virt + wptr - start);
else {
- vpu_dbg(LVL_ERR, "error: return wptr(0x%x), start(0x%x) is not valid\n", wptr, start);
+ vpu_err("error: return wptr(0x%x), start(0x%x) is not valid\n", wptr, start);
goto error;
}
if (((u_int64)pbbuffer)%4 != 0) {
int i;
if (end%4 != 0) {
- vpu_dbg(LVL_ERR, "end address of stream not aligned by 4 bytes !\n");
+ vpu_err("end address of stream not aligned by 4 bytes !\n");
goto error;
}
pad_bytes = 4 - (((u_int64)pbbuffer)%4);
pad_bytes += SCODE_SIZE;
} else {
//shouldn't enter here: suppose space is enough since add_eos() only be called in FIFO LOW
- vpu_dbg(LVL_ERR, "No enough space to insert EOS, size=%d !\n", rptr - wptr);
+ vpu_err("No enough space to insert EOS, size=%d !\n", rptr - wptr);
memcpy(pbbuffer, buffer, rptr - wptr);
wptr += (rptr - wptr);
pad_bytes += (rptr - wptr);
mutex_lock(&ctx->cmd_lock);
if (ctx->pending) {
- vpu_dbg(LVL_ERR,
- "ctx[%d]'s cmd(%s) is not finished yet\n",
+ vpu_err("ctx[%d]'s cmd(%s) is not finished yet\n",
ctx->str_index, get_cmd_str(ctx->pending->request));
put_cmd_request(ctx, ctx->pending);
ctx->pending = NULL;
}
list_for_each_entry_safe(request, tmp, &ctx->cmd_q, list) {
list_del_init(&request->list);
- vpu_dbg(LVL_ERR, "cmd(%s) of ctx[%d] is missed\n",
+ vpu_err("cmd(%s) of ctx[%d] is missed\n",
get_cmd_str(request->request), ctx->str_index);
put_cmd_request(ctx, request);
}
u32 i;
if (cmdnum > VPU_DEC_CMD_DATA_MAX_NUM) {
- vpu_dbg(LVL_ERR, "cmd(%s)'s data number(%d) > %d, drop it\n",
+ vpu_err("cmd(%s)'s data number(%d) > %d, drop it\n",
get_cmd_str(cmdid), cmdnum, VPU_DEC_CMD_DATA_MAX_NUM);
return;
}
request = get_cmd_request(ctx, cmdid);
if (!request) {
- vpu_dbg(LVL_ERR, "cmd(%s) of ctx[%d] is missed\n",
+ vpu_err("cmd(%s) of ctx[%d] is missed\n",
get_cmd_str(cmdid), idx);
return;
}
if (ctx->stream_buffer.dma_size < buffer_size + MIN_SPACE) {
- vpu_dbg(LVL_ERR, "circular buffer size is set too small\n");
+ vpu_err("circular buffer size is set too small\n");
return 0;
}
if (!ctx->start_code_bypass)
if (ctx->start_flag == true) {
ret = alloc_vpu_buffer(ctx);
if (ret) {
- vpu_dbg(LVL_ERR, "alloc vpu buffer fail\n");
+ vpu_err("alloc vpu buffer fail\n");
return;
}
if (start != ctx->stream_buffer.dma_phy ||
end != ctx->stream_buffer.dma_phy + ctx->stream_buffer.dma_size) {
- vpu_dbg(LVL_ERR, "error: %s(), start or end pointer cross-border\n", __func__);
+ vpu_err("error: %s(), start or end pointer cross-border\n", __func__);
return 0;
}
if (wptr < start || wptr > end) {
- vpu_dbg(LVL_ERR, "error: %s(), wptr pointer cross-border\n", __func__);
+ vpu_err("error: %s(), wptr pointer cross-border\n", __func__);
return 0;
}
if (rptr < start || rptr > end) {
- vpu_dbg(LVL_ERR, "error: %s(), rptr pointer cross-border\n", __func__);
+ vpu_err("error: %s(), rptr pointer cross-border\n", __func__);
return 0;
}
size = add_scode(ctx, 0, BUFABORT_PADDING_TYPE, false);
record_log_info(ctx, LOG_PADDING, 0, 0);
if (size < 0)
- vpu_dbg(LVL_ERR, "%s(): failed to fill abort padding data\n", __func__);
+ vpu_err("%s(): failed to fill abort padding data\n", __func__);
v4l2_vpu_send_cmd(ctx, ctx->str_index, VID_API_CMD_ABORT, 1, &size);
reinit_completion(&ctx->completion);
if (!wait_for_completion_timeout(&ctx->completion, msecs_to_jiffies(1000))) {
ctx->hang_status = true;
- vpu_dbg(LVL_ERR, "the path id:%d firmware timeout after send VID_API_CMD_ABORT\n",
+ vpu_err("the path id:%d firmware timeout after send VID_API_CMD_ABORT\n",
ctx->str_index);
return -EBUSY;
}
reinit_completion(&ctx->stop_cmp);
if (!wait_for_completion_timeout(&ctx->stop_cmp, msecs_to_jiffies(1000))) {
ctx->hang_status = true;
- vpu_dbg(LVL_ERR, "the path id:%d firmware hang after send VID_API_CMD_STOP\n", ctx->str_index);
+ vpu_err("the path id:%d firmware hang after send VID_API_CMD_STOP\n", ctx->str_index);
return -EBUSY;
}
buffer_id = find_buffer_id(ctx, FrameInfo[1]);
if (buffer_id == -1) {
- vpu_dbg(LVL_ERR, "%s() ctx[%d] not find buffer id: %d, addr: 0x%x\n",
+ vpu_err("%s() ctx[%d] not find buffer id: %d, addr: 0x%x\n",
__func__, ctx->str_index, fs_id, FrameInfo[1]);
return;
}
ctx->frm_dis_delay--;
return;
}
- vpu_dbg(LVL_ERR, "error: find buffer_id(%d) and firmware return id(%d) doesn't match\n",
+ vpu_err("error: find buffer_id(%d) and firmware return id(%d) doesn't match\n",
buffer_id, fs_id);
}
if (ctx->q_data[V4L2_DST].vb2_reqs[buffer_id].status != FRAME_DECODED)
- vpu_dbg(LVL_ERR, "error: buffer(%d) need to set FRAME_READY, but previous state %s is not FRAME_DECODED\n",
+ vpu_err("error: buffer(%d) need to set FRAME_READY, but previous state %s is not FRAME_DECODED\n",
buffer_id, bufstat[ctx->q_data[V4L2_DST].vb2_reqs[buffer_id].status]);
set_data_req_status(&ctx->q_data[V4L2_DST].vb2_reqs[buffer_id],
vb2_buffer_done(p_data_req->vb2_buf,
VB2_BUF_STATE_DONE);
else
- vpu_dbg(LVL_ERR, "warning: wait_rst_done(%d) check buffer(%d) state(%d)\n",
+ vpu_err("warning: wait_rst_done(%d) check buffer(%d) state(%d)\n",
ctx->wait_rst_done, buffer_id, p_data_req->vb2_buf->state);
}
up(&This->drv_q_lock);
vpu_dbg(LVL_BIT_PIC_ADDR, "<0x%08x 0x%08x>, %8d, %8d\n",
pic_start_addr, pic_end_addr, pic_size, consumed_pic_bytesused);
if (consumed_pic_bytesused < pic_size)
- vpu_dbg(LVL_ERR,
- "ErrorAddr:[%d] Start(0x%x), End(0x%x), preEnd(0x%x)\n",
+ vpu_err("ErrorAddr:[%d] Start(0x%x), End(0x%x), preEnd(0x%x)\n",
ctx->str_index,
pic_start_addr,
pic_end_addr,
return false;
if (!info->uHorRes || !info->uVerRes) {
- vpu_dbg(LVL_ERR, "ctx[%d] invalid seq info : %d x %d\n",
+ vpu_err("ctx[%d] invalid seq info : %d x %d\n",
ctx_id, info->uHorRes, info->uVerRes);
return false;
}
if (info->uHorRes > VPU_DEC_MAX_WIDTH ||
info->uVerRes > VPU_DEC_MAX_HEIGTH) {
- vpu_dbg(LVL_ERR, "ctx[%d] invalid seq info : %d x %d\n",
+ vpu_err("ctx[%d] invalid seq info : %d x %d\n",
ctx_id, info->uHorRes, info->uVerRes);
return false;
}
record_log_info(ctx, LOG_EVENT, uEvent, pStrBufDesc->rptr);
if (ctx == NULL) {
- vpu_dbg(LVL_ERR, "receive event: 0x%X after instance released, ignore it\n", uEvent);
+ vpu_err("receive event: 0x%X after instance released, ignore it\n", uEvent);
return;
}
case VID_API_EVENT_FIFO_LOW:
return;
default:
- vpu_dbg(LVL_ERR, "receive event: 0x%X after stopped, ignore it\n", uEvent);
+ vpu_err("receive event: 0x%X after stopped, ignore it\n", uEvent);
return;
}
}
buffer_id = find_buffer_id(ctx, event_data[0]);
if (buffer_id == -1) {
- vpu_dbg(LVL_ERR, "error: %s() ctx[%d] not find buffer id: %d, addr: 0x%x\n",
+ vpu_err("error: %s() ctx[%d] not find buffer id: %d, addr: 0x%x\n",
__func__, ctx->str_index, uDecFrmId, event_data[0]);
vpu_dec_valid_ts(ctx,
consumed_pic_bytesused,
NULL);
break;
}
- vpu_dbg(LVL_ERR, "error: VID_API_EVENT_PIC_DECODED address and id doesn't match\n");
+ vpu_err("error: VID_API_EVENT_PIC_DECODED address and id doesn't match\n");
}
p_data_req = &This->vb2_reqs[buffer_id];
if (p_data_req->status != FRAME_FREE)
- vpu_dbg(LVL_ERR, "error: buffer(%d) need to set FRAME_DECODED, but previous state %s is not FRAME_FREE\n",
+ vpu_err("error: buffer(%d) need to set FRAME_DECODED, but previous state %s is not FRAME_FREE\n",
buffer_id, bufstat[ctx->q_data[V4L2_DST].vb2_reqs[buffer_id].status]);
set_data_req_status(p_data_req, FRAME_DECODED);
if (ctx->pSeqinfo->uProgressive == 1)
vpu_dbg(LVL_INFO, "VID_API_EVENT_REQ_FRAME_BUFF, type=%d, size=%ld\n", pFSREQ->eType, sizeof(MEDIA_PLAYER_FSREQ));
if (pFSREQ->eType == MEDIAIP_DCP_REQ) {
if (ctx->dcp_count >= MAX_DCP_NUM) {
- vpu_dbg(LVL_ERR, "error: request dcp buffers number is over MAX_DCP_NUM\n");
+ vpu_err("error: request dcp buffers number is over MAX_DCP_NUM\n");
break;
}
if (alloc_dcp_buffer(ctx, ctx->dcp_count))
break;
case VID_API_EVENT_FINISHED: {
if (ctx->eos_stop_added == false)
- vpu_dbg(LVL_ERR, "warning: receive VID_API_EVENT_FINISHED before eos_stop_added set\n");
+ vpu_err("warning: receive VID_API_EVENT_FINISHED before eos_stop_added set\n");
ctx->eos_stop_added = false;
if (ctx->firmware_finished == true)
- vpu_dbg(LVL_ERR, "warning: receive VID_API_EVENT_FINISHED when firmware_finished == true\n");
+ vpu_err("warning: receive VID_API_EVENT_FINISHED when firmware_finished == true\n");
ctx->firmware_finished = true;
vpu_dbg(LVL_BIT_FLOW, "ctx[%d] FINISHED\n", ctx->str_index);
vpu_dbg(LVL_INFO, "receive VID_API_EVENT_FINISHED and notfiy app eos\n");
case VID_API_EVENT_FIRMWARE_XCPT: {
char *xcpt_info = (char*)event_data;
- vpu_dbg(LVL_ERR, "warning: VID_API_EVENT_FIRMWARE_XCPT,exception info: %s\n", xcpt_info);
+ vpu_err("warning: VID_API_EVENT_FIRMWARE_XCPT,exception info: %s\n", xcpt_info);
ctx->hang_status = true;
send_eos_event(ctx);
}
vpu_dec_event_decode_error(ctx);
break;
default:
- vpu_dbg(LVL_ERR, "warning: uEvent %d is not handled\n", uEvent);
+ vpu_err("warning: uEvent %d is not handled\n", uEvent);
break;
}
vpu_dbg(LVL_INFO, "leave %s, uEvent %d\n", __func__, uEvent);
*/
np = of_find_compatible_node(NULL, NULL, "fsl,imx8-mu0-vpu-m0");
if (!np) {
- vpu_dbg(LVL_ERR, "error: Cannot find MU entry in device tree\n");
+ vpu_err("error: Cannot find MU entry in device tree\n");
return -EINVAL;
}
dev->mu_base_virtaddr = of_iomap(np, 0);
ret = of_property_read_u32_index(np,
"fsl,vpu_ap_mu_id", 0, &vpu_mu_id);
if (ret) {
- vpu_dbg(LVL_ERR, "error: Cannot get mu_id %d\n", ret);
+ vpu_err("error: Cannot get mu_id %d\n", ret);
return -EINVAL;
}
ret = devm_request_irq(&dev->plat_dev->dev, irq, fsl_vpu_mu_isr,
IRQF_EARLY_RESUME, "vpu_mu_isr", (void *)dev);
if (ret) {
- vpu_dbg(LVL_ERR, "error: request_irq failed %d, error = %d\n", irq, ret);
+ vpu_err("error: request_irq failed %d, error = %d\n", irq, ret);
return -EINVAL;
}
}
if (atomic64_read(&ctx->statistic.total_alloc_size) != 0)
- vpu_dbg(LVL_ERR, "error: memory leak for vpu kalloc buffer\n");
+ vpu_err("error: memory leak for vpu kalloc buffer\n");
if (atomic64_read(&ctx->statistic.total_dma_size) != 0)
- vpu_dbg(LVL_ERR, "error: memory leak for vpu dma buffer\n");
+ vpu_err("error: memory leak for vpu dma buffer\n");
mutex_destroy(&ctx->instance_mutex);
mutex_destroy(&ctx->cmd_lock);
ret = kfifo_in(&ctx->msg_fifo, msg, sizeof(u_int32) * (MSG_WORD_LENGTH + msg->msgnum));
if (ret != sizeof(u_int32) * (MSG_WORD_LENGTH + msg->msgnum))
- vpu_dbg(LVL_ERR, "There is no memory for msg fifo, ret=%d\n", ret);
+ vpu_err("There is no memory for msg fifo, ret=%d\n", ret);
}
static bool receive_msg_queue(struct vpu_ctx *ctx, struct event_msg *msg)
if (kfifo_len(&ctx->msg_fifo) >= sizeof(u_int32) * MSG_WORD_LENGTH) {
ret = kfifo_out(&ctx->msg_fifo, msg, sizeof(u_int32) * MSG_WORD_LENGTH);
if (ret != sizeof(u_int32) * MSG_WORD_LENGTH) {
- vpu_dbg(LVL_ERR, "kfifo_out msg word has error, ret=%d\n", ret);
+ vpu_err("kfifo_out msg word has error, ret=%d\n", ret);
return false;
} else {
if (msg->msgnum > 0) {
if (kfifo_len(&ctx->msg_fifo) >= sizeof(u_int32) * msg->msgnum) {
ret = kfifo_out(&ctx->msg_fifo, msg->msgdata, sizeof(u_int32) * msg->msgnum);
if (ret != sizeof(u_int32) * msg->msgnum) {
- vpu_dbg(LVL_ERR, "kfifo_out msg data has error, ret=%d\n", ret);
+ vpu_err("kfifo_out msg data has error, ret=%d\n", ret);
return false;
} else
return true;
mutex_unlock(&dev->dev_mutex);
}
if (rpc_MediaIPFW_Video_message_check(This) == API_MSG_BUFFER_ERROR)
- vpu_dbg(LVL_ERR, "error: message size is too big to handle\n");
+ vpu_err("error: message size is too big to handle\n");
}
static void vpu_msg_instance_work(struct work_struct *work)
{
vb2_q->dev = &ctx->dev->plat_dev->dev;
ret = vb2_queue_init(vb2_q);
if (ret)
- vpu_dbg(LVL_ERR, "error: %s vb2_queue_init() failed (%d)!\n",
+ vpu_err("error: %s vb2_queue_init() failed (%d)!\n",
__func__, ret);
else
This->vb2_q_inited = true;
);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s() request fw %s failed(%d)\n",
+ vpu_err("error: %s() request fw %s failed(%d)\n",
__func__, M0FW_FILENAME, ret);
if (This->m0_pfw) {
ctx->dbglog_dir = debugfs_create_dir(ctx->dbglog_name, ctx->dev->debugfs_root);
if (!ctx->dbglog_dir) {
- vpu_dbg(LVL_ERR, "error: %s() ctx->dbglog_dir == NULL\n", __func__);
+ vpu_err("error: %s() ctx->dbglog_dir == NULL\n", __func__);
return -EINVAL;
}
debugfs_create_file("dbglog", VERIFY_OCTAL_PERMISSIONS(0444),
if (dev->debugfs_root == NULL) {
dev->debugfs_root = debugfs_create_dir("vpu", NULL);
if (!dev->debugfs_root) {
- vpu_dbg(LVL_ERR, "error: create debugfs_root fail\n");
+ vpu_err("error: create debugfs_root fail\n");
return -EINVAL;
}
}
dev,
&fwlog_fops);
if (!dev->debugfs_fwlog) {
- vpu_dbg(LVL_ERR, "error: create debugfs_fwlog fail\n");
+ vpu_err("error: create debugfs_fwlog fail\n");
return -EINVAL;
}
ctx->stream_buffer.dma_size = vpu_max_bufsize;
ret = alloc_dma_buffer(ctx, &ctx->stream_buffer);
if (ret) {
- vpu_dbg(LVL_ERR, "error: alloc stream buffer fail!\n");
+ vpu_err("error: alloc stream buffer fail!\n");
return ret;
}
}
ctx->udata_buffer.dma_size = UDATA_BUFFER_SIZE;
ret = alloc_dma_buffer(ctx, &ctx->udata_buffer);
if (ret) {
- vpu_dbg(LVL_ERR, "error: alloc udata buffer fail!\n");
+ vpu_err("error: alloc udata buffer fail!\n");
free_dma_buffer(ctx, &ctx->stream_buffer);
return ret;
}
ctx->str_index);
ctx->crc_fp = filp_open(crc_file, O_RDWR | O_CREAT, 0664);
if (IS_ERR(ctx->crc_fp)) {
- vpu_dbg(LVL_ERR, "error: open crc file fail\n");
+ vpu_err("error: open crc file fail\n");
ret = -1;
}
ctx->pos = 0;
ctx->instance_wq = alloc_workqueue("vpu_instance", WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
if (!ctx->instance_wq) {
- vpu_dbg(LVL_ERR, "error: %s unable to alloc workqueue for ctx\n", __func__);
+ vpu_err("error: %s unable to alloc workqueue for ctx\n", __func__);
ret = -ENOMEM;
goto err_alloc_wq;
}
if (kfifo_alloc(&ctx->msg_fifo,
sizeof(struct event_msg) * VID_API_MESSAGE_LIMIT,
GFP_KERNEL)) {
- vpu_dbg(LVL_ERR, "fail to alloc fifo when open\n");
+ vpu_err("fail to alloc fifo when open\n");
ret = -ENOMEM;
goto err_alloc_fifo;
}
}
ctx->pSeqinfo = kzalloc(sizeof(MediaIPFW_Video_SeqInfo), GFP_KERNEL);
if (!ctx->pSeqinfo) {
- vpu_dbg(LVL_ERR, "error: pSeqinfo alloc fail\n");
ret = -ENOMEM;
goto err_alloc_seq;
}
if (!dev->fw_is_ready) {
ret = vpu_firmware_download(dev);
if (ret) {
- vpu_dbg(LVL_ERR, "error: vpu_firmware_download fail\n");
+ vpu_err("error: vpu_firmware_download fail\n");
mutex_unlock(&dev->dev_mutex);
goto err_firmware_load;
}
if (!ctx->dev->firmware_started) {
reinit_completion(&ctx->dev->start_cmp);
if (!wait_for_completion_timeout(&ctx->dev->start_cmp, msecs_to_jiffies(10000))) {
- vpu_dbg(LVL_ERR, "error: don't get start interrupt\n");
+ vpu_err("error: don't get start interrupt\n");
ret = -1;
goto err_firmware_load;
}
clear_bit(ctx->str_index, &dev->instance_mask);
err_find_index:
if (atomic64_read(&ctx->statistic.total_alloc_size) != 0)
- vpu_dbg(LVL_ERR, "error: memory leak for vpu kalloc buffer\n");
+ vpu_err("error: memory leak for vpu kalloc buffer\n");
kfree(ctx);
pm_runtime_put_sync(dev->generic_dev);
reinit_completion(&dev->start_cmp);
if (!wait_for_completion_timeout(&dev->start_cmp, msecs_to_jiffies(10000))) {
- vpu_dbg(LVL_ERR, "error: %s() fail\n", __func__);
+ vpu_err("error: %s() fail\n", __func__);
return -1;
}
dev->firmware_started = true;
ret = of_property_read_u32(np, "core_type", &core_type);
if (ret) {
- vpu_dbg(LVL_ERR, "error: Cannot get core num %d\n", ret);
+ vpu_err("error: Cannot get core num %d\n", ret);
return -EINVAL;
}
if (core_type == 2)
dev->plat_type = IMX8QXP;
reserved_node = of_parse_phandle(np, "boot-region", 0);
if (!reserved_node) {
- vpu_dbg(LVL_ERR, "error: boot-region of_parse_phandle error\n");
+ vpu_err("error: boot-region of_parse_phandle error\n");
return -ENODEV;
}
if (of_address_to_resource(reserved_node, 0, &reserved_res)) {
- vpu_dbg(LVL_ERR, "error: boot-region of_address_to_resource error\n");
+ vpu_err("error: boot-region of_address_to_resource error\n");
return -EINVAL;
}
dev->m0_p_fw_space_phy = reserved_res.start;
dev->m0_boot_size = reserved_res.end - reserved_res.start;
reserved_node = of_parse_phandle(np, "rpc-region", 0);
if (!reserved_node) {
- vpu_dbg(LVL_ERR, "error: rpc-region of_parse_phandle error\n");
+ vpu_err("error: rpc-region of_parse_phandle error\n");
return -ENODEV;
}
if (of_address_to_resource(reserved_node, 0, &reserved_res)) {
- vpu_dbg(LVL_ERR, "error: rpc-region of_address_to_resource error\n");
+ vpu_err("error: rpc-region of_address_to_resource error\n");
return -EINVAL;
}
dev->m0_rpc_phy = reserved_res.start;
ret = of_property_read_u32(np, "reg-csr", &csr_base);
if (ret) {
- vpu_dbg(LVL_ERR, "error: Cannot get csr offset %d\n", ret);
+ vpu_err("error: Cannot get csr offset %d\n", ret);
return -EINVAL;
}
dev->csr_base = ioremap(csr_base, 8); //for csr0 offset and cpuwait
dev->pvpu_decoder_dev = video_device_alloc();
if (!dev->pvpu_decoder_dev) {
- vpu_dbg(LVL_ERR, "video device alloc for decoder fail\n");
+ vpu_err("video device alloc for decoder fail\n");
return -ENOMEM;
}
strlcpy(dev->pvpu_decoder_dev->name,
VFL_TYPE_GRABBER,
DECODER_NODE_NUMBER);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s unable to register video decoder device\n",
+ vpu_err("error: %s unable to register video decoder device\n",
__func__
);
video_device_release(dev->pvpu_decoder_dev);
ret = vpu_mu_init(dev);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s vpu mu init failed\n", __func__);
+ vpu_err("error: %s vpu mu init failed\n", __func__);
return ret;
}
dev->m0_boot_size
);
if (!dev->m0_p_fw_space_vir) {
- vpu_dbg(LVL_ERR, "error: failed to remap space for M0 firmware\n");
+ vpu_err("error: failed to remap space for M0 firmware\n");
return -ENOMEM;
}
dev->m0_rpc_size
);
if (!dev->m0_rpc_virt) {
- vpu_dbg(LVL_ERR, "error: failed to remap space for rpc shared memory\n");
+ vpu_err("error: failed to remap space for rpc shared memory\n");
return -ENOMEM;
}
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
dev->regs_base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(dev->regs_base)) {
- vpu_dbg(LVL_ERR, "error: %s could not map regs_base\n", __func__);
+ vpu_err("error: %s could not map regs_base\n", __func__);
ret = PTR_ERR(dev->regs_base);
goto err_put_dev;
}
ret = parse_dt_info(dev, np);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s parse device tree fail\n", __func__);
+ vpu_err("error: %s parse device tree fail\n", __func__);
goto err_dev_iounmap;
}
ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s unable to register v4l2 dev\n", __func__);
+ vpu_err("error: %s unable to register v4l2 dev\n", __func__);
goto err_dev_iounmap;
}
ret = create_vpu_video_device(dev);
if (ret) {
- vpu_dbg(LVL_ERR, "error: %s create vpu video device fail\n", __func__);
+ vpu_err("error: %s create vpu video device fail\n", __func__);
goto err_unreg_v4l2;
}
if (!dev->mu_ipcHandle) {
ret = sc_ipc_getMuID(&mu_id);
if (ret) {
- vpu_dbg(LVL_ERR, "error: --- sc_ipc_getMuID() cannot obtain mu id SCI error! (%d)\n", ret);
+ vpu_err("error: --- sc_ipc_getMuID() cannot obtain mu id SCI error! (%d)\n", ret);
goto err_rm_vdev;
}
ret = sc_ipc_open(&dev->mu_ipcHandle, mu_id);
if (ret) {
- vpu_dbg(LVL_ERR, "error: --- sc_ipc_getMuID() cannot open MU channel to SCU error! (%d)\n", ret);
+ vpu_err("error: --- sc_ipc_getMuID() cannot open MU channel to SCU error! (%d)\n", ret);
goto err_rm_vdev;
}
}
dev->workqueue = alloc_workqueue("vpu", WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
if (!dev->workqueue) {
- vpu_dbg(LVL_ERR, "error: %s unable to alloc workqueue\n", __func__);
+ vpu_err("error: %s unable to alloc workqueue\n", __func__);
ret = -ENOMEM;
goto err_rm_vdev;
}
ret = init_vpudev_parameters(dev);
if (ret) {
- vpu_dbg(LVL_ERR, "error: failed to init parameters for vpudev\n");
+ vpu_err("error: failed to init parameters for vpudev\n");
goto err_poweroff;
}
v4l2_vpu_send_snapshot(vpudev);
reinit_completion(&vpudev->snap_done_cmp);
if (!wait_for_completion_timeout(&vpudev->snap_done_cmp, msecs_to_jiffies(1000))) {
- vpu_dbg(LVL_ERR, "error: wait for vpu decoder snapdone event timeout!\n");
+ vpu_err("error: wait for vpu decoder snapdone event timeout!\n");
return -1;
}
}
/*wait for firmware resotre done*/
reinit_completion(&vpudev->start_cmp);
if (!wait_for_completion_timeout(&vpudev->start_cmp, msecs_to_jiffies(1000))) {
- vpu_dbg(LVL_ERR, "error: wait for vpu decoder resume done timeout!\n");
+ vpu_err("error: wait for vpu decoder resume done timeout!\n");
ret = -1;
}