Merge "msm: camera: reqmgr: Workqueue congestion handling" into camera-kernel.lnx.4.0

Esse commit está contido em:
Camera Software Integration
2020-08-28 13:08:39 -07:00
commit de Gerrit - the friendly Code Review server

Ver arquivo

@@ -1694,18 +1694,24 @@ static int __cam_req_mgr_process_req(struct cam_req_mgr_core_link *link,
rc = __cam_req_mgr_send_req(link, link->req.in_q, trigger, &dev);
if (rc < 0) {
/* Apply req failed retry at next sof */
slot->status = CRM_SLOT_STATUS_REQ_PENDING;
if (in_q->last_applied_idx < in_q->rd_idx) {
/* Apply req failed retry at next sof */
slot->status = CRM_SLOT_STATUS_REQ_PENDING;
link->retry_cnt++;
if (link->retry_cnt == MAXIMUM_RETRY_ATTEMPTS) {
CAM_DBG(CAM_CRM,
"Max retry attempts reached on link[0x%x] for req [%lld]",
link->link_hdl,
in_q->slot[in_q->rd_idx].req_id);
__cam_req_mgr_notify_error_on_link(link, dev);
link->retry_cnt = 0;
}
link->retry_cnt++;
if (link->retry_cnt == MAXIMUM_RETRY_ATTEMPTS) {
CAM_DBG(CAM_CRM,
"Max retry attempts reached on link[0x%x] for req [%lld]",
link->link_hdl,
in_q->slot[in_q->rd_idx].req_id);
__cam_req_mgr_notify_error_on_link(link, dev);
link->retry_cnt = 0;
}
} else
CAM_WARN(CAM_CRM,
"workqueue congestion, last applied idx:%d rd idx:%d",
in_q->last_applied_idx,
in_q->rd_idx);
} else {
if (link->retry_cnt)
link->retry_cnt = 0;