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

committato da
Gerrit - the friendly Code Review server

commit
0794e0fa6b
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Fai riferimento in un nuovo problema
Block a user