|
@@ -648,6 +648,7 @@ static int msm_vidc_open_state(struct msm_vidc_inst *inst,
|
|
|
{
|
|
|
struct v4l2_format *f = (struct v4l2_format *)data;
|
|
|
|
|
|
+ /* allow s_fmt request in open state */
|
|
|
rc = msm_vidc_s_fmt(inst, f);
|
|
|
if (rc)
|
|
|
return rc;
|
|
@@ -771,6 +772,13 @@ static int msm_vidc_input_streaming_state(struct msm_vidc_inst *inst,
|
|
|
{
|
|
|
struct v4l2_format *f = (struct v4l2_format *)data;
|
|
|
|
|
|
+ /* disallow */
|
|
|
+ if (f->type == INPUT_MPLANE || f->type == INPUT_META_PLANE) {
|
|
|
+ i_vpr_e(inst, "%s: (%s) not allowed for (%s) port\n",
|
|
|
+ __func__, event_name(event), v4l2_type_name(f->type));
|
|
|
+ return -EBUSY;
|
|
|
+ }
|
|
|
+
|
|
|
rc = msm_vidc_s_fmt(inst, f);
|
|
|
if (rc)
|
|
|
return rc;
|
|
@@ -921,6 +929,13 @@ static int msm_vidc_output_streaming_state(struct msm_vidc_inst *inst,
|
|
|
{
|
|
|
struct v4l2_format *f = (struct v4l2_format *)data;
|
|
|
|
|
|
+ /* disallow */
|
|
|
+ if (f->type == OUTPUT_MPLANE || f->type == OUTPUT_META_PLANE) {
|
|
|
+ i_vpr_e(inst, "%s: (%s) not allowed for (%s) port\n",
|
|
|
+ __func__, event_name(event), v4l2_type_name(f->type));
|
|
|
+ return -EBUSY;
|
|
|
+ }
|
|
|
+
|
|
|
rc = msm_vidc_s_fmt(inst, f);
|
|
|
if (rc)
|
|
|
return rc;
|