msm: camera: isp: Re-apply Bubble request

In certain scenario Buf_done failures are observed
for the request which is in bubble state. Since we
never get bufdone we inadvertently are stuck
in Bubble state. This change will wait for a period
of two frames to receive bufdone and recover from bubble
state. If any bufdone IRQ is never generated within this
time period, we remove the request from active list and
add it back to pending request list.

CRs-Fixed: 2506159
Change-Id: Ibcce21a1a87d0a64e49c6454391ca139fc7d1fa7
Signed-off-by: Vishalsingh Hajeri <vhajeri@codeaurora.org>
This commit is contained in:
Vishalsingh Hajeri
2019-09-30 16:43:18 -07:00
committed by Gerrit - the friendly Code Review server
parent 8c91109b74
commit 5c2bb43241
2 changed files with 50 additions and 0 deletions

View File

@@ -156,6 +156,7 @@ struct cam_isp_context_state_monitor {
* @substate_actiavted: Current substate for the activated state.
* @process_bubble: Atomic variable to check if ctx is still
* processing bubble.
* @bubble_frame_cnt: Count number of frames since the req is in bubble
* @substate_machine: ISP substate machine for external interface
* @substate_machine_irq: ISP substate machine for irq handling
* @req_base: Common request object storage
@@ -184,6 +185,7 @@ struct cam_isp_context {
int64_t frame_id;
uint32_t substate_activated;
atomic_t process_bubble;
uint32_t bubble_frame_cnt;
struct cam_ctx_ops *substate_machine;
struct cam_isp_ctx_irq_ops *substate_machine_irq;