When it receives the frame end interrupt callback from DDK,
driver must compare the current frame count from DDK and the selected H/W frame's fcount.
If the fcount of frame is too earlier than frame count from DDK,
it should be skipped for the correct frame end interrupt callback.
Change-Id: I1f0a5543e2f7e35027373401e1fe8c2c2f3294c1
Signed-off-by: Sanghoon Lee <shoon114.lee@samsung.com>
framemgr_x_barrier_common(framemgr, 0, flags);
fimc_is_hardware_frame_ndone(hw_ip, frame, frame->instance, IS_SHOT_INVALID_FRAMENUMBER);
goto flush_wait_done_frame;
+ } else if (unlikely(frame->fcount > expected_fcount)) {
+ mswarn_hw("%s:[F%d] Too early frame. Skip it.",
+ instance_id, hw_ip,
+ __func__, frame->fcount);
+ framemgr_x_barrier_common(framemgr, 0, flags);
+ return true;
}
} else {
framemgr_x_barrier_common(framemgr, 0, flags);