video: driver: add thumbnail and priority support
- add thumbnail mode and priority in database. - modify output min count for thumbnail session - deprecate is_turbo_session. - deprecate flags variable in instance structure and use database entries. Change-Id: I04a3386f1e2eb9fb97bd550d6f169f9510f462c8 Signed-off-by: Darshana Patil <darshana@codeaurora.org>
This commit is contained in:
@@ -1059,7 +1059,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
{THUMBNAIL_MODE, DEC, CODECS_ALL,
|
{THUMBNAIL_MODE, DEC, CODECS_ALL,
|
||||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
0,
|
V4L2_CID_MPEG_VIDC_THUMBNAIL_MODE,
|
||||||
HFI_PROP_THUMBNAIL_MODE},
|
HFI_PROP_THUMBNAIL_MODE},
|
||||||
|
|
||||||
{DEFAULT_HEADER, DEC, CODECS_ALL,
|
{DEFAULT_HEADER, DEC, CODECS_ALL,
|
||||||
@@ -1083,6 +1083,14 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
||||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
||||||
|
|
||||||
|
{PRIORITY, DEC|ENC, CODECS_ALL,
|
||||||
|
0, 2, 1, 1,
|
||||||
|
V4L2_CID_MPEG_VIDC_PRIORITY,
|
||||||
|
HFI_PROP_REALTIME,
|
||||||
|
CAP_FLAG_ROOT,
|
||||||
|
{0}, {0},
|
||||||
|
NULL, NULL},
|
||||||
|
|
||||||
{META_LTR_MARK_USE, ENC, CODECS_ALL,
|
{META_LTR_MARK_USE, ENC, CODECS_ALL,
|
||||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
|
@@ -639,13 +639,10 @@ int msm_vidc_decide_quality_mode_iris2(struct msm_vidc_inst* inst)
|
|||||||
max_hq_mbps = core->capabilities[MAX_MBPS_HQ].value;;
|
max_hq_mbps = core->capabilities[MAX_MBPS_HQ].value;;
|
||||||
|
|
||||||
/* Power saving always disabled for CQ and LOSSLESS RC modes. */
|
/* Power saving always disabled for CQ and LOSSLESS RC modes. */
|
||||||
if (inst->capabilities->cap[LOSSLESS].value ||
|
if (capability->cap[LOSSLESS].value ||
|
||||||
(mbpf <= max_hq_mbpf && mbps <= max_hq_mbps))
|
(mbpf <= max_hq_mbpf && mbps <= max_hq_mbps))
|
||||||
mode = MSM_VIDC_MAX_QUALITY_MODE;
|
mode = MSM_VIDC_MAX_QUALITY_MODE;
|
||||||
|
|
||||||
inst->flags = mode == MSM_VIDC_POWER_SAVE_MODE ?
|
|
||||||
inst->flags | VIDC_LOW_POWER :
|
|
||||||
inst->flags & ~VIDC_LOW_POWER;
|
|
||||||
capability->cap[QUALITY_MODE].value = mode;
|
capability->cap[QUALITY_MODE].value = mode;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -41,7 +41,7 @@ u64 msm_vidc_calc_freq_iris2(struct msm_vidc_inst *inst, u32 data_size)
|
|||||||
fw_vpp_cycles = fps * core->capabilities[MB_CYCLES_FW_VPP].value;
|
fw_vpp_cycles = fps * core->capabilities[MB_CYCLES_FW_VPP].value;
|
||||||
|
|
||||||
if (inst->domain == MSM_VIDC_ENCODER) {
|
if (inst->domain == MSM_VIDC_ENCODER) {
|
||||||
vpp_cycles_per_mb = inst->flags & VIDC_LOW_POWER ?
|
vpp_cycles_per_mb = is_low_power_session(inst) ?
|
||||||
core->capabilities[MB_CYCLES_LP].value :
|
core->capabilities[MB_CYCLES_LP].value :
|
||||||
core->capabilities[MB_CYCLES_VPP].value;
|
core->capabilities[MB_CYCLES_VPP].value;
|
||||||
|
|
||||||
|
@@ -26,7 +26,7 @@ static inline is_encode_session(struct msm_vidc_inst *inst)
|
|||||||
|
|
||||||
static inline is_secure_session(struct msm_vidc_inst *inst)
|
static inline is_secure_session(struct msm_vidc_inst *inst)
|
||||||
{
|
{
|
||||||
return false;
|
return !!(inst->capabilities->cap[SECURE_MODE].value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline is_input_buffer(enum msm_vidc_buffer_type buffer_type)
|
static inline is_input_buffer(enum msm_vidc_buffer_type buffer_type)
|
||||||
@@ -145,24 +145,21 @@ static inline bool is_secondary_output_mode(struct msm_vidc_inst *inst)
|
|||||||
return false; // TODO: inst->stream_output_mode == HAL_VIDEO_DECODER_SECONDARY;
|
return false; // TODO: inst->stream_output_mode == HAL_VIDEO_DECODER_SECONDARY;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_turbo_session(struct msm_vidc_inst *inst)
|
|
||||||
{
|
|
||||||
return !!(inst->flags & VIDC_TURBO);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool is_thumbnail_session(struct msm_vidc_inst *inst)
|
static inline bool is_thumbnail_session(struct msm_vidc_inst *inst)
|
||||||
{
|
{
|
||||||
return !!(inst->flags & VIDC_THUMBNAIL);
|
return false;
|
||||||
|
// todo: return !!(inst->capabilities->cap[THUMBNAIL_MODE].value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_low_power_session(struct msm_vidc_inst *inst)
|
static inline bool is_low_power_session(struct msm_vidc_inst *inst)
|
||||||
{
|
{
|
||||||
return !!(inst->flags & VIDC_LOW_POWER);
|
return (inst->capabilities->cap[QUALITY_MODE].value ==
|
||||||
|
MSM_VIDC_POWER_SAVE_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_realtime_session(struct msm_vidc_inst *inst)
|
static inline bool is_realtime_session(struct msm_vidc_inst *inst)
|
||||||
{
|
{
|
||||||
return false; // TODO: fix it
|
return !inst->capabilities->cap[PRIORITY].value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_active_session(u64 prev, u64 curr)
|
static inline bool is_active_session(u64 prev, u64 curr)
|
||||||
|
@@ -108,7 +108,6 @@ struct msm_vidc_inst {
|
|||||||
struct msm_vidc_rectangle crop;
|
struct msm_vidc_rectangle crop;
|
||||||
struct msm_vidc_rectangle compose;
|
struct msm_vidc_rectangle compose;
|
||||||
struct msm_vidc_power power;
|
struct msm_vidc_power power;
|
||||||
enum msm_vidc_modes flags;
|
|
||||||
struct vidc_bus_vote_data bus_data;
|
struct vidc_bus_vote_data bus_data;
|
||||||
struct msm_vidc_buffers_info buffers;
|
struct msm_vidc_buffers_info buffers;
|
||||||
struct msm_vidc_mappings_info mappings;
|
struct msm_vidc_mappings_info mappings;
|
||||||
|
@@ -413,6 +413,7 @@ enum msm_vidc_inst_capability_type {
|
|||||||
DEFAULT_HEADER,
|
DEFAULT_HEADER,
|
||||||
RAP_FRAME,
|
RAP_FRAME,
|
||||||
SEQ_CHANGE_AT_SYNC_FRAME,
|
SEQ_CHANGE_AT_SYNC_FRAME,
|
||||||
|
PRIORITY,
|
||||||
META_LTR_MARK_USE,
|
META_LTR_MARK_USE,
|
||||||
META_DPB_MISR,
|
META_DPB_MISR,
|
||||||
META_OPB_MISR,
|
META_OPB_MISR,
|
||||||
@@ -680,13 +681,6 @@ struct msm_vidc_decode_batch {
|
|||||||
struct delayed_work work;
|
struct delayed_work work;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum msm_vidc_modes {
|
|
||||||
VIDC_SECURE = BIT(0),
|
|
||||||
VIDC_TURBO = BIT(1),
|
|
||||||
VIDC_THUMBNAIL = BIT(2),
|
|
||||||
VIDC_LOW_POWER = BIT(3),
|
|
||||||
};
|
|
||||||
|
|
||||||
enum load_calc_quirks {
|
enum load_calc_quirks {
|
||||||
LOAD_POWER = 0,
|
LOAD_POWER = 0,
|
||||||
LOAD_ADMISSION_CONTROL = 1,
|
LOAD_ADMISSION_CONTROL = 1,
|
||||||
|
@@ -669,6 +669,7 @@ static int msm_vdec_set_realtime(struct msm_vidc_inst *inst,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
realtime = inst->capabilities->cap[PRIORITY].value;
|
||||||
i_vpr_h(inst, "%s: priority: %d", __func__, realtime);
|
i_vpr_h(inst, "%s: priority: %d", __func__, realtime);
|
||||||
rc = venus_hfi_session_property(inst,
|
rc = venus_hfi_session_property(inst,
|
||||||
HFI_PROP_REALTIME,
|
HFI_PROP_REALTIME,
|
||||||
@@ -1378,7 +1379,13 @@ static int msm_vdec_read_input_subcr_params(struct msm_vidc_inst *inst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
inst->buffers.output.min_count = subsc_params.fw_min_count;
|
inst->buffers.output.min_count = subsc_params.fw_min_count;
|
||||||
|
if (is_thumbnail_session(inst) && inst->codec != MSM_VIDC_VP9) {
|
||||||
|
if (inst->buffers.output.min_count != 1) {
|
||||||
|
i_vpr_e(inst, "%s: invalid min count %d in thumbnail case\n",
|
||||||
|
__func__, inst->buffers.output.min_count);
|
||||||
|
msm_vidc_change_inst_state(inst, MSM_VIDC_ERROR, __func__);
|
||||||
|
}
|
||||||
|
}
|
||||||
inst->crop.top = subsc_params.crop_offsets[0] & 0xFFFF;
|
inst->crop.top = subsc_params.crop_offsets[0] & 0xFFFF;
|
||||||
inst->crop.left = (subsc_params.crop_offsets[0] >> 16) & 0xFFFF;
|
inst->crop.left = (subsc_params.crop_offsets[0] >> 16) & 0xFFFF;
|
||||||
inst->crop.height = inst->fmts[INPUT_PORT].fmt.pix_mp.height -
|
inst->crop.height = inst->fmts[INPUT_PORT].fmt.pix_mp.height -
|
||||||
|
@@ -59,7 +59,7 @@ u32 msm_vidc_output_min_count(struct msm_vidc_inst *inst)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (is_thumbnail_session(inst))
|
if (is_thumbnail_session(inst))
|
||||||
return inst->codec == MSM_VIDC_VP9 ? 8 : 1;
|
return 1;
|
||||||
|
|
||||||
if (is_decode_session(inst)) {
|
if (is_decode_session(inst)) {
|
||||||
switch (inst->codec) {
|
switch (inst->codec) {
|
||||||
|
@@ -119,7 +119,57 @@ static const char * const * msm_vidc_get_qmenu_type(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *msm_vidc_get_priv_ctrl_name(struct msm_vidc_inst *inst, u32 control_id)
|
static const char *msm_vidc_get_priv_ctrl_name_list2(struct msm_vidc_inst *inst,
|
||||||
|
u32 control_id)
|
||||||
|
{
|
||||||
|
switch (control_id) {
|
||||||
|
case V4L2_CID_MPEG_VIDC_HEVC_I_FRAME_MIN_QP:
|
||||||
|
return "HEVC I Frame Min QP";
|
||||||
|
case V4L2_CID_MPEG_VIDC_HEVC_P_FRAME_MIN_QP:
|
||||||
|
return "HEVC P Frame Min QP";
|
||||||
|
case V4L2_CID_MPEG_VIDC_HEVC_I_FRAME_MAX_QP:
|
||||||
|
return "HEVC I Frame Max QP";
|
||||||
|
case V4L2_CID_MPEG_VIDC_HEVC_P_FRAME_MAX_QP:
|
||||||
|
return "HEVC P Frame Max QP";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS:
|
||||||
|
return "LTR Mark Use Details Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL:
|
||||||
|
return "Seq Header NAL Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR:
|
||||||
|
return "DPB Luma-Chroma MISR Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR:
|
||||||
|
return "OPB Luma-Chroma MISR Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_INTERLACE:
|
||||||
|
return "Interlace Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT:
|
||||||
|
return "Concealed MB Count Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO:
|
||||||
|
return "Historgram Info Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR:
|
||||||
|
return "SEI Mastering Display Color Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL:
|
||||||
|
return "SEI Content Lighting Level Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS:
|
||||||
|
return "HDR10PLUS Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS:
|
||||||
|
return "EVA Stats Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG:
|
||||||
|
return "Buffer Tag Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT:
|
||||||
|
return "Subframe Output Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO:
|
||||||
|
return "ROI Info Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP:
|
||||||
|
return "Timestamp Metadata";
|
||||||
|
case V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA:
|
||||||
|
return "Encoder QP Metadata";
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *msm_vidc_get_priv_ctrl_name_list1(struct msm_vidc_inst *inst,
|
||||||
|
u32 control_id)
|
||||||
{
|
{
|
||||||
switch (control_id) {
|
switch (control_id) {
|
||||||
case V4L2_CID_MPEG_VIDC_SECURE:
|
case V4L2_CID_MPEG_VIDC_SECURE:
|
||||||
@@ -162,56 +212,39 @@ static const char *msm_vidc_get_priv_ctrl_name(struct msm_vidc_inst *inst, u32 c
|
|||||||
return "H264 Display Delay";
|
return "H264 Display Delay";
|
||||||
case V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE:
|
case V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE:
|
||||||
return "H264 Display Delay Enable";
|
return "H264 Display Delay Enable";
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_LTR_MARK_USE_DETAILS:
|
|
||||||
return "LTR Mark Use Details Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_SEQ_HEADER_NAL:
|
|
||||||
return "Seq Header NAL Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_DPB_LUMA_CHROMA_MISR:
|
|
||||||
return "DPB Luma-Chroma MISR Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_OPB_LUMA_CHROMA_MISR:
|
|
||||||
return "OPB Luma-Chroma MISR Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_INTERLACE:
|
|
||||||
return "Interlace Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_CONCEALED_MB_COUNT:
|
|
||||||
return "Concealed MB Count Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_HISTOGRAM_INFO:
|
|
||||||
return "Historgram Info Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_SEI_MASTERING_DISPLAY_COLOUR:
|
|
||||||
return "SEI Mastering Display Color Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_SEI_CONTENT_LIGHT_LEVEL:
|
|
||||||
return "SEI Content Lighting Level Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_HDR10PLUS:
|
|
||||||
return "HDR10PLUS Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS:
|
|
||||||
return "EVA Stats Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_BUFFER_TAG:
|
|
||||||
return "Buffer Tag Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT:
|
|
||||||
return "Subframe Output Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_ROI_INFO:
|
|
||||||
return "ROI Info Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_TIMESTAMP:
|
|
||||||
return "Timestamp Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_METADATA_ENC_QP_METADATA:
|
|
||||||
return "Encoder QP Metadata";
|
|
||||||
case V4L2_CID_MPEG_VIDC_MIN_BITSTREAM_SIZE_OVERWRITE:
|
case V4L2_CID_MPEG_VIDC_MIN_BITSTREAM_SIZE_OVERWRITE:
|
||||||
return "Bitstream Size Overwrite";
|
return "Bitstream Size Overwrite";
|
||||||
case V4L2_CID_MPEG_VIDC_HEVC_I_FRAME_MIN_QP:
|
|
||||||
return "HEVC I Frame Min QP";
|
|
||||||
case V4L2_CID_MPEG_VIDC_HEVC_P_FRAME_MIN_QP:
|
|
||||||
return "HEVC P Frame Min QP";
|
|
||||||
case V4L2_CID_MPEG_VIDC_HEVC_I_FRAME_MAX_QP:
|
|
||||||
return "HEVC I Frame Max QP";
|
|
||||||
case V4L2_CID_MPEG_VIDC_HEVC_P_FRAME_MAX_QP:
|
|
||||||
return "HEVC P Frame Max QP";
|
|
||||||
case V4L2_CID_MPEG_VIDC_SUPERFRAME:
|
case V4L2_CID_MPEG_VIDC_SUPERFRAME:
|
||||||
return "Encoder Batching Superframe";
|
return "Encoder Batching Superframe";
|
||||||
|
case V4L2_CID_MPEG_VIDC_THUMBNAIL_MODE:
|
||||||
|
return "Thumbnail Mode";
|
||||||
|
case V4L2_CID_MPEG_VIDC_PRIORITY:
|
||||||
|
return "Priority";
|
||||||
default:
|
default:
|
||||||
i_vpr_e(inst, "%s: ctrl name not available for ctrl id %#x\n",
|
|
||||||
__func__, control_id);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Due to a long switch case function, ccn failure was observed. Hence the
|
||||||
|
* below function is split into msm_vidc_get_priv_ctrl_name_list1() and
|
||||||
|
* msm_vidc_get_priv_ctrl_name_list2()
|
||||||
|
*/
|
||||||
|
static const char *msm_vidc_get_priv_ctrl_name(struct msm_vidc_inst *inst,
|
||||||
|
u32 control_id)
|
||||||
|
{
|
||||||
|
const char *ctrl_name;
|
||||||
|
|
||||||
|
ctrl_name = msm_vidc_get_priv_ctrl_name_list1(inst, control_id);
|
||||||
|
if (ctrl_name)
|
||||||
|
return ctrl_name;
|
||||||
|
ctrl_name = msm_vidc_get_priv_ctrl_name_list2(inst, control_id);
|
||||||
|
if (ctrl_name)
|
||||||
|
return ctrl_name;
|
||||||
|
|
||||||
|
i_vpr_e(inst, "%s: ctrl name not available for ctrl id %#x\n",
|
||||||
|
__func__, control_id);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static int msm_vidc_packetize_control(struct msm_vidc_inst *inst,
|
static int msm_vidc_packetize_control(struct msm_vidc_inst *inst,
|
||||||
enum msm_vidc_inst_capability_type cap_id, u32 payload_type,
|
enum msm_vidc_inst_capability_type cap_id, u32 payload_type,
|
||||||
|
@@ -320,7 +320,7 @@ static ssize_t inst_info_read(struct file *file, char __user *buf,
|
|||||||
inst->capabilities->cap[FRAME_RATE].value >> 16);
|
inst->capabilities->cap[FRAME_RATE].value >> 16);
|
||||||
cur += write_str(cur, end - cur, "state: %d\n", inst->state);
|
cur += write_str(cur, end - cur, "state: %d\n", inst->state);
|
||||||
cur += write_str(cur, end - cur, "secure: %d\n",
|
cur += write_str(cur, end - cur, "secure: %d\n",
|
||||||
!!(inst->flags & VIDC_SECURE));
|
is_secure_session(inst));
|
||||||
cur += write_str(cur, end - cur, "-----------Formats-------------\n");
|
cur += write_str(cur, end - cur, "-----------Formats-------------\n");
|
||||||
for (i = 0; i < MAX_PORT; i++) {
|
for (i = 0; i < MAX_PORT; i++) {
|
||||||
if (i != INPUT_PORT && i != OUTPUT_PORT)
|
if (i != INPUT_PORT && i != OUTPUT_PORT)
|
||||||
|
@@ -2964,7 +2964,7 @@ int msm_vidc_print_inst_info(struct msm_vidc_inst *inst)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_secure = !!(inst->flags & VIDC_SECURE);
|
is_secure = is_secure_session(inst);
|
||||||
is_decode = inst->domain == MSM_VIDC_DECODER;
|
is_decode = inst->domain == MSM_VIDC_DECODER;
|
||||||
port = is_decode ? INPUT_PORT : OUTPUT_PORT;
|
port = is_decode ? INPUT_PORT : OUTPUT_PORT;
|
||||||
width = inst->fmts[port].fmt.pix_mp.width;
|
width = inst->fmts[port].fmt.pix_mp.width;
|
||||||
|
@@ -494,8 +494,8 @@ int msm_vidc_scale_clocks(struct msm_vidc_inst *inst)
|
|||||||
if (!data_size)
|
if (!data_size)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (inst->power.buffer_counter < DCVS_FTB_WINDOW ||
|
//todo: add turbo session check
|
||||||
is_turbo_session(inst)) {
|
if (inst->power.buffer_counter < DCVS_FTB_WINDOW) {
|
||||||
inst->power.min_freq = msm_vidc_max_freq(inst);
|
inst->power.min_freq = msm_vidc_max_freq(inst);
|
||||||
inst->power.dcvs_flags = 0;
|
inst->power.dcvs_flags = 0;
|
||||||
} else if (msm_vidc_clock_voting) {
|
} else if (msm_vidc_clock_voting) {
|
||||||
|
Reference in New Issue
Block a user