video: driver: utilize v4l2_m2m_ioctl_streamon helper function

Use v4l2_m2m_ioctl_streamon helper function for input and output ports

Change-Id: I20375259321cc5925ccaf7f8eab95a94f55d2821
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
This commit is contained in:
Deepa Guthyappa Madivalara
2022-02-09 17:19:44 -08:00
parent 4597327ed8
commit e5189157f1
4 changed files with 12 additions and 7 deletions

View File

@@ -33,7 +33,8 @@ int msm_vidc_release_buffer(void *instance, int buffer_type,
int msm_vidc_qbuf(void *instance, struct media_device *mdev,
struct v4l2_buffer *b);
int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b);
int msm_vidc_streamon(void *instance, enum v4l2_buf_type i);
int msm_vidc_streamon(void *instance, struct file *filp, void *fh,
enum v4l2_buf_type i);
int msm_vidc_query_ctrl(void *instance, struct v4l2_queryctrl *ctrl);
int msm_vidc_query_menu(void *instance, struct v4l2_querymenu *qmenu);
int msm_vidc_streamoff(void *instance, enum v4l2_buf_type i);

View File

@@ -34,7 +34,7 @@ void msm_vb2_unmap_dmabuf(void *buf_priv);
int msm_vidc_queue_setup(struct vb2_queue *q,
unsigned int *num_buffers, unsigned int *num_planes,
unsigned int sizes[], struct device *alloc_devs[]);
int msm_vidc_start_streaming(struct vb2_queue *q, unsigned int count);
int msm_vidc_start_streaming(struct vb2_queue *q, unsigned int i);
void msm_vidc_stop_streaming(struct vb2_queue *q);
void msm_vidc_buf_queue(struct vb2_buffer *vb2);
void msm_vidc_buf_cleanup(struct vb2_buffer *vb);

View File

@@ -5,6 +5,7 @@
#include <linux/types.h>
#include <linux/hash.h>
#include <media/v4l2-mem2mem.h>
#include "msm_vidc_core.h"
#include "msm_vidc_inst.h"
#include "msm_vdec.h"
@@ -545,7 +546,8 @@ exit:
}
EXPORT_SYMBOL(msm_vidc_dqbuf);
int msm_vidc_streamon(void *instance, enum v4l2_buf_type type)
int msm_vidc_streamon(void *instance, struct file *filp, void *fh,
enum v4l2_buf_type type)
{
int rc = 0;
struct msm_vidc_inst *inst = instance;
@@ -569,10 +571,12 @@ int msm_vidc_streamon(void *instance, enum v4l2_buf_type type)
rc = -EINVAL;
goto exit;
}
if (port == INPUT_PORT || port == OUTPUT_PORT)
rc = v4l2_m2m_ioctl_streamon(filp, fh, type);
else
rc = vb2_streamon(inst->bufq[port].vb2q, type);
if (rc) {
i_vpr_e(inst, "%s: vb2_streamon(%d) failed, %d\n",
i_vpr_e(inst, "%s: streamon(%d) failed, %d\n",
__func__, type, rc);
msm_vidc_change_inst_state(inst, MSM_VIDC_ERROR, __func__);
goto exit;

View File

@@ -443,7 +443,7 @@ int msm_v4l2_streamon(struct file *filp, void *fh,
rc = -EBUSY;
goto unlock;
}
rc = msm_vidc_streamon((void *)inst, i);
rc = msm_vidc_streamon((void *)inst, filp, fh, i);
if (rc)
goto unlock;