video: driver: remove capability pointer

Remove capability pointer and allocate
memory with max cap size.

Change-Id: I7f53e3b35439f91b72f057695b6e63f71bfecc0a
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
This commit is contained in:
Ankush Mitra
2023-03-25 15:36:17 +05:30
parent 7affdd1031
commit e450d8eaa3
27 changed files with 955 additions and 1122 deletions

View File

@@ -45,7 +45,7 @@ static inline bool is_image_session(struct msm_vidc_inst *inst)
static inline bool is_secure_session(struct msm_vidc_inst *inst)
{
return !!(inst->capabilities->cap[SECURE_MODE].value);
return !!(inst->capabilities[SECURE_MODE].value);
}
static inline bool is_input_buffer(enum msm_vidc_buffer_type buffer_type)
@@ -70,7 +70,7 @@ static inline bool is_output_meta_buffer(enum msm_vidc_buffer_type buffer_type)
static inline bool is_ts_reorder_allowed(struct msm_vidc_inst *inst)
{
return !!(inst->capabilities->cap[TS_REORDER].value &&
return !!(inst->capabilities[TS_REORDER].value &&
is_decode_session(inst) && !is_image_session(inst));
}
@@ -84,8 +84,8 @@ static inline bool is_scaling_enabled(struct msm_vidc_inst *inst)
static inline bool is_rotation_90_or_270(struct msm_vidc_inst *inst)
{
return inst->capabilities->cap[ROTATION].value == 90 ||
inst->capabilities->cap[ROTATION].value == 270;
return inst->capabilities[ROTATION].value == 90 ||
inst->capabilities[ROTATION].value == 270;
}
static inline bool is_internal_buffer(enum msm_vidc_buffer_type buffer_type)
@@ -103,7 +103,7 @@ static inline bool is_internal_buffer(enum msm_vidc_buffer_type buffer_type)
static inline bool is_meta_cap(struct msm_vidc_inst *inst, u32 cap)
{
if (inst->capabilities->cap[cap].flags & CAP_FLAG_META)
if (inst->capabilities[cap].flags & CAP_FLAG_META)
return true;
return false;
@@ -116,8 +116,8 @@ static inline bool is_meta_rx_inp_enabled(struct msm_vidc_inst *inst, u32 cap)
if (!is_meta_cap(inst, cap))
return false;
if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities->cap[cap].value & MSM_VIDC_META_RX_INPUT)
if (inst->capabilities[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities[cap].value & MSM_VIDC_META_RX_INPUT)
enabled = true;
return enabled;
@@ -130,8 +130,8 @@ static inline bool is_meta_rx_out_enabled(struct msm_vidc_inst *inst, u32 cap)
if (!is_meta_cap(inst, cap))
return false;
if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities->cap[cap].value & MSM_VIDC_META_RX_OUTPUT)
if (inst->capabilities[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities[cap].value & MSM_VIDC_META_RX_OUTPUT)
enabled = true;
return enabled;
@@ -144,8 +144,8 @@ static inline bool is_meta_tx_inp_enabled(struct msm_vidc_inst *inst, u32 cap)
if (!is_meta_cap(inst, cap))
return false;
if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities->cap[cap].value & MSM_VIDC_META_TX_INPUT)
if (inst->capabilities[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities[cap].value & MSM_VIDC_META_TX_INPUT)
enabled = true;
return enabled;
@@ -158,8 +158,8 @@ static inline bool is_dyn_meta_tx_inp_enabled(struct msm_vidc_inst *inst, u32 ca
if (!is_meta_cap(inst, cap))
return false;
if (inst->capabilities->cap[cap].value & MSM_VIDC_META_DYN_ENABLE &&
inst->capabilities->cap[cap].value & MSM_VIDC_META_TX_INPUT)
if (inst->capabilities[cap].value & MSM_VIDC_META_DYN_ENABLE &&
inst->capabilities[cap].value & MSM_VIDC_META_TX_INPUT)
enabled = true;
return enabled;
@@ -172,8 +172,8 @@ static inline bool is_meta_tx_out_enabled(struct msm_vidc_inst *inst, u32 cap)
if (!is_meta_cap(inst, cap))
return false;
if (inst->capabilities->cap[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities->cap[cap].value & MSM_VIDC_META_TX_OUTPUT)
if (inst->capabilities[cap].value & MSM_VIDC_META_ENABLE &&
inst->capabilities[cap].value & MSM_VIDC_META_TX_OUTPUT)
enabled = true;
return enabled;
@@ -186,8 +186,8 @@ static inline bool is_dyn_meta_tx_out_enabled(struct msm_vidc_inst *inst, u32 ca
if (!is_meta_cap(inst, cap))
return false;
if (inst->capabilities->cap[cap].value & MSM_VIDC_META_DYN_ENABLE &&
inst->capabilities->cap[cap].value & MSM_VIDC_META_TX_OUTPUT)
if (inst->capabilities[cap].value & MSM_VIDC_META_DYN_ENABLE &&
inst->capabilities[cap].value & MSM_VIDC_META_TX_OUTPUT)
enabled = true;
return enabled;
@@ -323,37 +323,37 @@ static inline bool is_rgba_colorformat(enum msm_vidc_colorformat_type colorforma
static inline bool is_thumbnail_session(struct msm_vidc_inst *inst)
{
return !!(inst->capabilities->cap[THUMBNAIL_MODE].value);
return !!(inst->capabilities[THUMBNAIL_MODE].value);
}
static inline bool is_low_power_session(struct msm_vidc_inst *inst)
{
return (inst->capabilities->cap[QUALITY_MODE].value ==
return (inst->capabilities[QUALITY_MODE].value ==
MSM_VIDC_POWER_SAVE_MODE);
}
static inline bool is_realtime_session(struct msm_vidc_inst *inst)
{
return inst->capabilities->cap[PRIORITY].value == 0 ? true : false;
return inst->capabilities[PRIORITY].value == 0 ? true : false;
}
static inline bool is_critical_priority_session(struct msm_vidc_inst *inst)
{
return !!(inst->capabilities->cap[CRITICAL_PRIORITY].value);
return !!(inst->capabilities[CRITICAL_PRIORITY].value);
}
static inline bool is_lowlatency_session(struct msm_vidc_inst *inst)
{
return !!(inst->capabilities->cap[LOWLATENCY_MODE].value);
return !!(inst->capabilities[LOWLATENCY_MODE].value);
}
static inline bool is_hierb_type_requested(struct msm_vidc_inst *inst)
{
return (inst->codec == MSM_VIDC_H264 &&
inst->capabilities->cap[LAYER_TYPE].value ==
inst->capabilities[LAYER_TYPE].value ==
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) ||
(inst->codec == MSM_VIDC_HEVC &&
inst->capabilities->cap[LAYER_TYPE].value ==
inst->capabilities[LAYER_TYPE].value ==
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B);
}
@@ -386,9 +386,9 @@ static inline bool is_enc_slice_delivery_mode(struct msm_vidc_inst *inst)
if (is_decode_session(inst))
return false;
return (inst->capabilities->cap[SLICE_MODE].value ==
return (inst->capabilities[SLICE_MODE].value ==
V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB &&
inst->capabilities->cap[DELIVERY_MODE].value);
inst->capabilities[DELIVERY_MODE].value);
}
const char *cap_name(enum msm_vidc_inst_capability_type cap_id);