#endif
}
+ vframe = vf_get(VFM_NAME);
+
if (vframe == NULL)
return 0;
- vframe = vf_get(VFM_NAME);
-
/*for support compress from dec*/
if (IS_COMP_MODE(vframe->type) &&
!is_bypass(vframe)) {
return 0;
} else if (!afbc_busy) {
/*afbc_busy = di_requeset_afbc(false);*/
- di_pre_stru.wait_afbc = 0;
+ di_pre_stru.wait_afbc = false;
pr_info("di: afbc hw free\n");
+ } else {
+ di_pre_stru.wait_afbc = false;
+ pr_info("di: afbc wait timeout\n");
}
}
int itmp;
int ready_count = list_count(QUEUE_PRE_READY);
bool check_drop = false;
- u32 di_afbc = false;
+ bool di_afbc = false;
if (queue_empty(QUEUE_POST_FREE))
return 0;
}
if (ready_di_buf->vframe->type & VIDTYPE_PRE_DI_AFBC) {
- di_afbc = 1;
+ di_afbc = true;
/*pr_info("di afbc mode 0x%x\n", ready_di_buf->vframe->type);*/
}
(pre_run_flag == DI_RUN_FLAG_STEP)) {
if (pre_run_flag == DI_RUN_FLAG_STEP)
pre_run_flag = DI_RUN_FLAG_STEP_DONE;
- if (pre_de_buf_config() &&
- (di_pre_stru.pre_de_process_flag == 0)
- && (!atomic_read(&di_flag_unreg)))
+ if ((!atomic_read(&di_flag_unreg))
+ && (di_pre_stru.pre_de_process_flag == 0)
+ && pre_de_buf_config())
pre_de_process();
}
}
ddbg_mod_save(eDI_DBG_MOD_UNREGB, 0, 0);
di_pre_stru.unreg_req_flag = 1;
di_pre_stru.vdin_source = false;
- di_pre_stru.wait_afbc = false;
+
/*di_requeset_afbc(false);*/
trigger_pre_di_process(TRIGGER_PRE_BY_PROVERDER_UNREG);
di_pre_stru.unreg_req_flag_cnt = 0;
|| di_pre_stru.pre_de_busy) {
pr_info("di:w10\n");
usleep_range(10000, 10001);
+ } else {
+ pr_info("di:no w\n");
}
+ di_pre_stru.wait_afbc = false;
while (di_pre_stru.unreg_req_flag ||
di_pre_stru.reg_irq_busy) {
usleep_range(1000, 1001);
pr_info("%s: vframe provider reg %s\n", __func__,
provider_name);
ddbg_mod_save(eDI_DBG_MOD_REGB, 0, 0);
+ di_pre_stru.wait_afbc = false;
atomic_set(&di_flag_unreg, 0); //ary
bypass_state = 0;
di_pre_stru.reg_req_flag = 1;
vf_put(vf, VFM_NAME);
vf_notify_provider(VFM_NAME,
VFRAME_EVENT_RECEIVER_PUT, NULL);
+ #if 0
if (!IS_ERR_OR_NULL(di_post_stru.keep_buf))
recycle_keep_buffer();
+ #endif
return;
}
/* struct di_buf_s *p = NULL; */
__func__, vf);
return;
}
- if (di_post_stru.keep_buf == di_buf) {
- pr_info("[DI]recycle buffer %d, get cnt %d.\n",
- di_buf->index, disp_frame_count);
+ //if (di_post_stru.keep_buf == di_buf) {
+ // pr_info("[DI]recycle buffer %d, get cnt %d.\n",
+ // di_buf->index, disp_frame_count);
recycle_keep_buffer();
- }
+ //}
if (di_buf->type == VFRAME_TYPE_POST) {
di_lock_irqfiq_save(irq_flag2);