msm: camera: sync: Add support to invoke synx recover

If ICP FW is to be redowloaded, issue a synx recover for
this ICP core so that IPC/synx for the previous session
can be cleaned up prior to the next ICP cold boot.

CRs-Fixed: 3448052
Change-Id: I9f8f772730f7e4a8873b6dbdcf7a896ad6193150
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
This commit is contained in:
Karthik Anantha Ram
2023-03-28 14:49:59 -07:00
committed by Camera Software Integration
parent 42c90f68b7
commit 267f259a72
6 changed files with 90 additions and 0 deletions

View File

@@ -722,6 +722,36 @@ monitor_dump:
return rc;
}
int cam_synx_core_recovery(
enum cam_sync_synx_supported_cores cam_core_id)
{
int rc;
enum synx_client_id client_id = SYNX_CLIENT_MAX;
switch (cam_core_id) {
case CAM_ICP_0_SYNX_CORE:
client_id = SYNX_CLIENT_ICP_CTX0;
break;
default:
rc = -EINVAL;
goto err;
}
rc = synx_recover(client_id);
if (rc)
goto err;
CAM_DBG(CAM_SYNX, "Synx recovery for synx_client: %d[%d] success",
client_id, cam_core_id);
return rc;
err:
CAM_ERR(CAM_SYNX, "Failed to recover for synx_client: %d rc: %d",
client_id, rc);
return rc;
}
int __cam_synx_init_session(void)
{
struct synx_queue_desc queue_desc;