msm: camera: reqmgr: Pause the timer before sensor stream on
Sometimes, the cpu load is very high, then the devcies stream on will be delayed, but the CRM watchdog is already enabled before streaming on, then we will have a chance to notify SOF freeze issue. This change pauses the CRM watchdog timer before streaming on sensor and after stopping ife, when we can detect the stream on and stream off delay, but don't notify error, also can detect the real SOF freeze issue. CRs-Fixed: 2804587 Change-Id: Iccaee837930ea22290b109eff45b05300d844312 Signed-off-by: Depeng Shao <depengs@codeaurora.org>
This commit is contained in:

committad av
Gerrit - the friendly Code Review server

förälder
641fd73444
incheckning
4591949a37
@@ -1001,6 +1001,7 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl,
|
||||
break;
|
||||
}
|
||||
case CAM_START_DEV: {
|
||||
struct cam_req_mgr_timer_notify timer;
|
||||
if ((s_ctrl->sensor_state == CAM_SENSOR_INIT) ||
|
||||
(s_ctrl->sensor_state == CAM_SENSOR_START)) {
|
||||
rc = -EINVAL;
|
||||
@@ -1023,6 +1024,21 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl,
|
||||
}
|
||||
}
|
||||
s_ctrl->sensor_state = CAM_SENSOR_START;
|
||||
|
||||
if (s_ctrl->bridge_intf.crm_cb &&
|
||||
s_ctrl->bridge_intf.crm_cb->notify_timer) {
|
||||
timer.link_hdl = s_ctrl->bridge_intf.link_hdl;
|
||||
timer.dev_hdl = s_ctrl->bridge_intf.device_hdl;
|
||||
timer.state = true;
|
||||
rc = s_ctrl->bridge_intf.crm_cb->notify_timer(&timer);
|
||||
if (rc) {
|
||||
CAM_ERR(CAM_SENSOR,
|
||||
"Enable CRM SOF freeze timer failed rc: %d",
|
||||
rc);
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
||||
CAM_INFO(CAM_SENSOR,
|
||||
"CAM_START_DEV Success for %s sensor_id:0x%x,sensor_slave_addr:0x%x",
|
||||
s_ctrl->sensor_name,
|
||||
|
Referens i nytt ärende
Block a user