mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
msm: camera: isp: Add eof notification for rdi only context
For RDI only context EOF is not notified; it should be notified, for the corner case if the flash is configured to apply at EOF then it will block apply for ISP on SOF as well until the EOF is notified, this change adds EOF notification. CRs-Fixed: 3091241 Change-Id: If6d974d092d640d9def89bbcf7a88fba0d85579b Signed-off-by: Tejas Prajapati <quic_tpraja@quicinc.com>
This commit is contained in:
parent
ce9b4b3f12
commit
c6de9ec432
3 changed files with 19 additions and 5 deletions
|
|
@ -4315,7 +4315,7 @@ static struct cam_isp_ctx_irq_ops
|
|||
__cam_isp_ctx_rdi_only_sof_in_top_state,
|
||||
__cam_isp_ctx_reg_upd_in_sof,
|
||||
NULL,
|
||||
NULL,
|
||||
__cam_isp_ctx_notify_eof_in_activated_state,
|
||||
NULL,
|
||||
},
|
||||
},
|
||||
|
|
@ -4326,7 +4326,7 @@ static struct cam_isp_ctx_irq_ops
|
|||
__cam_isp_ctx_rdi_only_sof_in_applied_state,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
__cam_isp_ctx_notify_eof_in_activated_state,
|
||||
__cam_isp_ctx_buf_done_in_applied,
|
||||
},
|
||||
},
|
||||
|
|
@ -4337,7 +4337,7 @@ static struct cam_isp_ctx_irq_ops
|
|||
__cam_isp_ctx_rdi_only_sof_in_top_state,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
__cam_isp_ctx_notify_eof_in_activated_state,
|
||||
__cam_isp_ctx_buf_done_in_epoch,
|
||||
},
|
||||
},
|
||||
|
|
@ -4348,7 +4348,7 @@ static struct cam_isp_ctx_irq_ops
|
|||
__cam_isp_ctx_rdi_only_sof_in_bubble_state,
|
||||
__cam_isp_ctx_rdi_only_reg_upd_in_bubble_state,
|
||||
NULL,
|
||||
NULL,
|
||||
__cam_isp_ctx_notify_eof_in_activated_state,
|
||||
__cam_isp_ctx_buf_done_in_bubble,
|
||||
},
|
||||
},
|
||||
|
|
@ -4359,7 +4359,7 @@ static struct cam_isp_ctx_irq_ops
|
|||
__cam_isp_ctx_rdi_only_sof_in_bubble_applied,
|
||||
__cam_isp_ctx_rdi_only_reg_upd_in_bubble_applied_state,
|
||||
NULL,
|
||||
NULL,
|
||||
__cam_isp_ctx_notify_eof_in_activated_state,
|
||||
__cam_isp_ctx_buf_done_in_bubble_applied,
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7990,6 +7990,14 @@ static int cam_ife_hw_mgr_handle_hw_eof(
|
|||
case CAM_ISP_HW_VFE_IN_RDI1:
|
||||
case CAM_ISP_HW_VFE_IN_RDI2:
|
||||
case CAM_ISP_HW_VFE_IN_RDI3:
|
||||
if (!ife_hw_mgr_ctx->is_rdi_only_context)
|
||||
break;
|
||||
if (atomic_read(&ife_hw_mgr_ctx->overflow_pending))
|
||||
break;
|
||||
ife_hw_irq_eof_cb(ife_hw_mgr_ctx->common.cb_priv,
|
||||
CAM_ISP_HW_EVENT_EOF, (void *)&eof_done_event_data);
|
||||
break;
|
||||
|
||||
case CAM_ISP_HW_VFE_IN_PDLIB:
|
||||
case CAM_ISP_HW_VFE_IN_LCR:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -5649,6 +5649,12 @@ static int cam_tfe_hw_mgr_handle_hw_eof(
|
|||
case CAM_ISP_HW_TFE_IN_RDI0:
|
||||
case CAM_ISP_HW_TFE_IN_RDI1:
|
||||
case CAM_ISP_HW_TFE_IN_RDI2:
|
||||
if (!tfe_hw_mgr_ctx->is_rdi_only_context)
|
||||
break;
|
||||
if (atomic_read(&tfe_hw_mgr_ctx->overflow_pending))
|
||||
break;
|
||||
tfe_hw_irq_eof_cb(tfe_hw_mgr_ctx->common.cb_priv,
|
||||
CAM_ISP_HW_EVENT_EOF, (void *)&eof_done_event_data);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in a new issue