msm: camera: reqmgr: Fix frame drop issue
When the req id of a slot is -1, we don't update the last applied idx for this slot, if a bubble issue is reported on previous slot, then we won't reset its status to ADDED, then we will force reset it during moving to new slot, then this slot will be reset, its status will be NO_REQ after reset, then wr idx will be increased even though the wr idx isn't equal to rd idx. This change updates the wr idx only when wr idx is equal to rd idx, and always update last applied idx. CRs-Fixed: 3157732 Change-Id: I9e6cae019f93c7c12e81708a84e1ac28bf64bbc8 Signed-off-by: Depeng Shao <quic_depengs@quicinc.com>
This commit is contained in:

committato da
Camera Software Integration

parent
be308d6b3e
commit
92f47b510a
@@ -842,7 +842,8 @@ 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);
|
||||
else
|
||||
__cam_req_mgr_inc_idx(&in_q->wr_idx, 1, in_q->num_slots);
|
||||
}
|
||||
|
||||
return rc;
|
||||
@@ -2032,8 +2033,7 @@ static int __cam_req_mgr_process_req(struct cam_req_mgr_core_link *link,
|
||||
}
|
||||
}
|
||||
|
||||
if (slot->req_id > 0)
|
||||
in_q->last_applied_idx = idx;
|
||||
in_q->last_applied_idx = idx;
|
||||
|
||||
__cam_req_mgr_dec_idx(
|
||||
&idx, reset_step + 1,
|
||||
|
Fai riferimento in un nuovo problema
Block a user