mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
Merge "msm: camera: ope: Update request timeout for NRT/RT context" into camera-kernel.lnx.4.0
This commit is contained in:
commit
7ad290b351
2 changed files with 15 additions and 8 deletions
|
|
@ -624,8 +624,8 @@ static bool cam_ope_check_req_delay(struct cam_ope_ctx *ctx_data,
|
|||
ts.tv_nsec);
|
||||
|
||||
if (ts_ns - req_time <
|
||||
((OPE_REQUEST_TIMEOUT -
|
||||
OPE_REQUEST_TIMEOUT / 10) * 1000000)) {
|
||||
((ctx_data->req_timer_timeout -
|
||||
ctx_data->req_timer_timeout / 10) * 1000000)) {
|
||||
CAM_INFO(CAM_OPE, "ctx: %d, ts_ns : %llu",
|
||||
ctx_data->ctx_id, ts_ns);
|
||||
cam_ope_req_timer_reset(ctx_data);
|
||||
|
|
@ -848,7 +848,7 @@ static int cam_ope_start_req_timer(struct cam_ope_ctx *ctx_data)
|
|||
int rc = 0;
|
||||
|
||||
rc = crm_timer_init(&ctx_data->req_watch_dog,
|
||||
OPE_REQUEST_TIMEOUT, ctx_data, &cam_ope_req_timer_cb);
|
||||
ctx_data->req_timer_timeout, ctx_data, &cam_ope_req_timer_cb);
|
||||
if (rc)
|
||||
CAM_ERR(CAM_OPE, "Failed to start timer");
|
||||
|
||||
|
|
@ -2626,11 +2626,15 @@ static int cam_ope_mgr_acquire_hw(void *hw_priv, void *hw_acquire_args)
|
|||
goto end;
|
||||
}
|
||||
strlcpy(cdm_acquire->identifier, "ope", sizeof("ope"));
|
||||
if (ctx->ope_acquire.dev_type == OPE_DEV_TYPE_OPE_RT)
|
||||
if (ctx->ope_acquire.dev_type == OPE_DEV_TYPE_OPE_RT) {
|
||||
cdm_acquire->priority = CAM_CDM_BL_FIFO_3;
|
||||
ctx->req_timer_timeout = OPE_REQUEST_RT_TIMEOUT;
|
||||
}
|
||||
else if (ctx->ope_acquire.dev_type ==
|
||||
OPE_DEV_TYPE_OPE_NRT)
|
||||
OPE_DEV_TYPE_OPE_NRT) {
|
||||
cdm_acquire->priority = CAM_CDM_BL_FIFO_0;
|
||||
ctx->req_timer_timeout = OPE_REQUEST_NRT_TIMEOUT;
|
||||
}
|
||||
else
|
||||
goto free_cdm_acquire;
|
||||
|
||||
|
|
@ -3300,7 +3304,7 @@ static int cam_ope_mgr_prepare_hw_update(void *hw_priv,
|
|||
CAM_DBG(CAM_REQ, "req_id= %llu ctx_id= %d lrt=%llu",
|
||||
packet->header.request_id, ctx_data->ctx_id,
|
||||
ctx_data->last_req_time);
|
||||
cam_ope_req_timer_modify(ctx_data, OPE_REQUEST_TIMEOUT);
|
||||
cam_ope_req_timer_modify(ctx_data, ctx_data->req_timer_timeout);
|
||||
set_bit(request_idx, ctx_data->bitmap);
|
||||
mutex_unlock(&ctx_data->ctx_mutex);
|
||||
|
||||
|
|
@ -3620,7 +3624,7 @@ static int cam_ope_mgr_hw_dump(void *hw_priv, void *hw_dump_args)
|
|||
cur_ts = ktime_to_timespec64(cur_time);
|
||||
req_ts = ktime_to_timespec64(ctx_data->req_list[idx]->submit_timestamp);
|
||||
|
||||
if (diff < (OPE_REQUEST_TIMEOUT * 1000)) {
|
||||
if (diff < (ctx_data->req_timer_timeout * 1000)) {
|
||||
CAM_INFO(CAM_OPE, "No Error req %llu %ld:%06ld %ld:%06ld",
|
||||
dump_args->request_id,
|
||||
req_ts.tv_sec,
|
||||
|
|
|
|||
|
|
@ -60,7 +60,8 @@
|
|||
#define CLK_HW_MAX 0x1
|
||||
|
||||
#define OPE_DEVICE_IDLE_TIMEOUT 400
|
||||
#define OPE_REQUEST_TIMEOUT 200
|
||||
#define OPE_REQUEST_RT_TIMEOUT 200
|
||||
#define OPE_REQUEST_NRT_TIMEOUT 400
|
||||
|
||||
/**
|
||||
* struct cam_ope_clk_bw_request_v2
|
||||
|
|
@ -447,6 +448,7 @@ struct cam_ope_cdm {
|
|||
* @clk_watch_dog: Clock watchdog
|
||||
* @clk_watch_dog_reset_counter: Reset counter
|
||||
* @last_flush_req: last flush req for this ctx
|
||||
* @req_timer_timeout: req timer timeout value
|
||||
*/
|
||||
struct cam_ope_ctx {
|
||||
void *context_priv;
|
||||
|
|
@ -470,6 +472,7 @@ struct cam_ope_ctx {
|
|||
uint32_t clk_watch_dog_reset_counter;
|
||||
uint64_t last_flush_req;
|
||||
bool pf_mid_found;
|
||||
uint64_t req_timer_timeout;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue