Merge "msm: camera: req_mgr: Apply lower pd request in sync" into camera-kernel.lnx.5.0

This commit is contained in:
Camera Software Integration
2021-09-03 14:30:20 -07:00
committato da Gerrit - the friendly Code Review server

Vedi File

@@ -914,7 +914,9 @@ static int __cam_req_mgr_check_next_req_slot(
if (in_q->wr_idx != idx)
CAM_WARN(CAM_CRM,
"CHECK here wr %d, rd %d", in_q->wr_idx, idx);
__cam_req_mgr_inc_idx(&in_q->wr_idx, 1, in_q->num_slots);
if (slot->sync_mode != CAM_REQ_MGR_SYNC_MODE_SYNC ||
(slot->sync_mode == CAM_REQ_MGR_SYNC_MODE_SYNC && !link->is_master))
__cam_req_mgr_inc_idx(&in_q->wr_idx, 1, in_q->num_slots);
}
return rc;
@@ -3920,9 +3922,17 @@ static int cam_req_mgr_cb_notify_trigger(
slot = &in_q->slot[slot_rd_idx];
tmp_slot = &in_q->slot[slot_rd_idx];
if (slot->status == CRM_SLOT_STATUS_REQ_APPLIED) {
if (slot->sync_mode != CAM_REQ_MGR_SYNC_MODE_NO_SYNC &&
slot->status == CRM_SLOT_STATUS_REQ_APPLIED) {
__cam_req_mgr_inc_idx(&slot_rd_idx, 1, in_q->num_slots);
slot = &in_q->slot[slot_rd_idx];
if (slot->status == CRM_SLOT_STATUS_NO_REQ &&
in_q->wr_idx == slot_rd_idx) {
if (link->is_master)
__cam_req_mgr_inc_idx(&in_q->wr_idx, 1, in_q->num_slots);
slot->sync_mode = tmp_slot->sync_mode;
}
}
CAM_DBG(CAM_CRM,
@@ -3967,26 +3977,28 @@ static int cam_req_mgr_cb_notify_trigger(
trigger_data->fps,
link->fps);
rc = __cam_req_mgr_check_link_is_ready(
link, slot->idx, true);
if (slot->status != CRM_SLOT_STATUS_NO_REQ) {
rc = __cam_req_mgr_check_link_is_ready(
link, slot->idx, true);
if (rc) {
CAM_DBG(CAM_CRM,
"Req:%lld [Master] not ready on link: %x, rc=%d",
slot->req_id, link->link_hdl, rc);
return rc;
}
if (rc) {
CAM_DBG(CAM_CRM,
"Req:%lld [Master] not ready on link: %x, rc=%d",
slot->req_id, link->link_hdl, rc);
return rc;
}
/* Checking each sync link if they are ready to apply
* on this epoch, if not then skip apply on this epoch
*/
/* Checking each sync link if they are ready to apply
* on this epoch, if not then skip apply on this epoch
*/
rc = cam_req_mgr_is_slave_link_ready(
link, slot, trigger_data->fps, frame_duration,
curr_boot_timestamp_ns);
if (rc) {
CAM_DBG(CAM_CRM, "Sync link not ready");
return rc;
rc = cam_req_mgr_is_slave_link_ready(
link, slot, trigger_data->fps, frame_duration,
curr_boot_timestamp_ns);
if (rc) {
CAM_DBG(CAM_CRM, "Sync link not ready");
return rc;
}
}
}
}