diff --git a/msm/vidc/msm_vidc.c b/msm/vidc/msm_vidc.c index bf40eeef23a8..180b6a39eb97 100644 --- a/msm/vidc/msm_vidc.c +++ b/msm/vidc/msm_vidc.c @@ -414,10 +414,11 @@ int msm_vidc_qbuf(void *instance, struct media_device *mdev, } /* - * set perf mode for image session buffers so that - * they will be processed quickly + * set perf mode for image and thumbnail session buffers + * so that they will be processed quickly */ - if (is_grid_session(inst) && b->type == INPUT_MPLANE) + if ((is_grid_session(inst) || is_thumbnail_session(inst)) + && b->type == INPUT_MPLANE) b->flags |= V4L2_BUF_FLAG_PERF_MODE; timestamp_us = (u64)((b->timestamp.tv_sec * 1000000ULL) + diff --git a/msm/vidc/msm_vidc_common.c b/msm/vidc/msm_vidc_common.c index 071e616eec90..d22a7c85d0ea 100644 --- a/msm/vidc/msm_vidc_common.c +++ b/msm/vidc/msm_vidc_common.c @@ -735,15 +735,20 @@ int msm_comm_get_inst_load(struct msm_vidc_inst *inst, * | Power Request Load = | * | res * max(op, fps)| * ----------------|----------------------------| - * NON-REALTIME/ | Admission Control Load = 0 | - * THUMBNAIL | Power Request Load = | + * NON-REALTIME | Admission Control Load = 0 | + * | Power Request Load = | * | res * max(op, fps)| * ----------------|----------------------------| + * THUMBNAIL | Always Load = 0 | + * | Perf mode added for | + * | thumbnail session buffers | + * | for faster decoding. | + * ----------------|----------------------------| */ - if ((is_thumbnail_session(inst) || - !is_realtime_session(inst)) && - quirks == LOAD_ADMISSION_CONTROL) { + if (is_thumbnail_session(inst) || + (!is_realtime_session(inst) && + quirks == LOAD_ADMISSION_CONTROL)) { load = 0; } else { load = msm_comm_get_mbs_per_sec(inst, quirks);