video: driver: remove support of s_parm/g_parm for decoder

remove support of s_parm/g_parm for decoder

Change-Id: I5b35b33610eb96bbfc26181c8c249316ee65b31b
Bu işleme şunda yer alıyor:
Darshana Patil
2022-04-07 14:44:40 -07:00
ebeveyn 5969b7c252
işleme 2d69ee17ae
4 değiştirilmiş dosya ile 12 ekleme ve 106 silme

Dosyayı Görüntüle

@@ -19,10 +19,6 @@ int msm_vdec_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f);
int msm_vdec_g_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f);
int msm_vdec_s_selection(struct msm_vidc_inst* inst, struct v4l2_selection* s);
int msm_vdec_g_selection(struct msm_vidc_inst* inst, struct v4l2_selection* s);
int msm_vdec_s_param(struct msm_vidc_inst *inst,
struct v4l2_streamparm *s_parm);
int msm_vdec_g_param(struct msm_vidc_inst *inst,
struct v4l2_streamparm *s_parm);
int msm_vdec_subscribe_event(struct msm_vidc_inst *inst,
const struct v4l2_event_subscription *sub);
int msm_vdec_enum_fmt(struct msm_vidc_inst *inst, struct v4l2_fmtdesc *f);

Dosyayı Görüntüle

@@ -2508,100 +2508,6 @@ int msm_vdec_g_selection(struct msm_vidc_inst* inst, struct v4l2_selection* s)
return 0;
}
int msm_vdec_s_param(struct msm_vidc_inst *inst,
struct v4l2_streamparm *s_parm)
{
int rc = 0;
struct msm_vidc_inst_capability *capability = NULL;
struct v4l2_fract *timeperframe = NULL;
u32 q16_rate, max_rate, default_rate;
u64 us_per_frame = 0, input_rate = 0;
bool is_frame_rate = false;
if (!inst || !s_parm) {
d_vpr_e("%s: invalid params\n", __func__);
return -EINVAL;
}
capability = inst->capabilities;
if (s_parm->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
timeperframe = &s_parm->parm.output.timeperframe;
max_rate = capability->cap[FRAME_RATE].max >> 16;
default_rate = capability->cap[FRAME_RATE].value >> 16;
is_frame_rate = true;
} else {
timeperframe = &s_parm->parm.capture.timeperframe;
max_rate = capability->cap[OPERATING_RATE].max >> 16;
default_rate = capability->cap[OPERATING_RATE].value >> 16;
}
if (!timeperframe->denominator || !timeperframe->numerator) {
i_vpr_e(inst, "%s: type %s, invalid rate\n", __func__,
v4l2_type_name(s_parm->type));
input_rate = default_rate;
goto set_default;
}
us_per_frame = timeperframe->numerator * (u64)USEC_PER_SEC;
do_div(us_per_frame, timeperframe->denominator);
if (!us_per_frame) {
i_vpr_e(inst, "%s: us_per_frame is zero\n", __func__);
rc = -EINVAL;
goto exit;
}
input_rate = (u64)USEC_PER_SEC;
do_div(input_rate, us_per_frame);
set_default:
i_vpr_h(inst, "%s: type %s, %s value %llu\n",
__func__, v4l2_type_name(s_parm->type),
is_frame_rate ? "frame rate" : "operating rate", input_rate);
q16_rate = (u32)input_rate << 16;
msm_vidc_update_cap_value(inst, is_frame_rate ? FRAME_RATE : OPERATING_RATE,
q16_rate, __func__);
if (is_frame_rate)
capability->cap[FRAME_RATE].flags |= CAP_FLAG_CLIENT_SET;
else
capability->cap[OPERATING_RATE].flags |= CAP_FLAG_CLIENT_SET;
exit:
return rc;
}
int msm_vdec_g_param(struct msm_vidc_inst *inst,
struct v4l2_streamparm *s_parm)
{
struct msm_vidc_inst_capability *capability = NULL;
struct v4l2_fract *timeperframe = NULL;
if (!inst || !s_parm) {
d_vpr_e("%s: invalid params\n", __func__);
return -EINVAL;
}
capability = inst->capabilities;
if (s_parm->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
timeperframe = &s_parm->parm.output.timeperframe;
timeperframe->numerator = 1;
timeperframe->denominator =
capability->cap[FRAME_RATE].value >> 16;
} else {
timeperframe = &s_parm->parm.capture.timeperframe;
timeperframe->numerator = 1;
timeperframe->denominator =
capability->cap[OPERATING_RATE].value >> 16;
}
i_vpr_h(inst, "%s: type %u, num %u denom %u\n",
__func__, s_parm->type, timeperframe->numerator,
timeperframe->denominator);
return 0;
}
int msm_vdec_subscribe_event(struct msm_vidc_inst *inst,
const struct v4l2_event_subscription *sub)
{

Dosyayı Görüntüle

@@ -350,10 +350,13 @@ int msm_vidc_s_param(void *instance, struct v4l2_streamparm *param)
param->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
return -EINVAL;
if (is_decode_session(inst))
rc = msm_vdec_s_param(instance, param);
else if (is_encode_session(inst))
if (is_encode_session(inst)) {
rc = msm_venc_s_param(instance, param);
} else {
i_vpr_e(inst, "%s: invalid domain %#x\n",
__func__, inst->domain);
return -EINVAL;
}
return rc;
}
@@ -373,10 +376,13 @@ int msm_vidc_g_param(void *instance, struct v4l2_streamparm *param)
param->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
return -EINVAL;
if (is_decode_session(inst))
rc = msm_vdec_g_param(instance, param);
else if (is_encode_session(inst))
if (is_encode_session(inst)) {
rc = msm_venc_g_param(instance, param);
} else {
i_vpr_e(inst, "%s: invalid domain %#x\n",
__func__, inst->domain);
return -EINVAL;
}
return rc;
}