int msm_v4l2_reqbufs(struct file *file, void *fh, struct v4l2_requestbuffers *b) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); int rc = 0; if (b->count == 0) rc = msm_vidc_release_buffers(vidc_inst, b->type); if (rc) dprintk(VIDC_WARN, "Failed in %s for release output buffers\n", __func__); return msm_vidc_reqbufs((void *)vidc_inst, b); }
static int msm_v4l2_encoder_cmd(struct file *file, void *fh, struct v4l2_encoder_cmd *enc) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); int rc = 0; if (enc->cmd == V4L2_ENC_CMD_STOP) rc = msm_vidc_release_buffers(vidc_inst, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); if (rc) dprintk(VIDC_WARN, "Failed to release enc output buffers: %d\n", rc); return msm_vidc_encoder_cmd((void *)vidc_inst, enc); }
static int msm_v4l2_close(struct file *filp) { int rc = 0; struct msm_vidc_inst *vidc_inst; vidc_inst = get_vidc_inst(filp, NULL); rc = msm_vidc_release_buffers(vidc_inst, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); if (rc) dprintk(VIDC_WARN, "Failed in %s for release output buffers\n", __func__); rc = msm_vidc_close(vidc_inst); return rc; }
static int msm_v4l2_close(struct file *filp) { int rc = 0; struct msm_vidc_inst *vidc_inst; vidc_inst = get_vidc_inst(filp, NULL); rc = msm_vidc_release_buffers(vidc_inst, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); if (rc) dprintk(VIDC_WARN, "Failed in %s for release output buffers\n", __func__); if (pm_qos_request_active(&vidc_inst->pm_qos)) { dprintk(VIDC_DBG, "pm_qos_update and remove\n"); pm_qos_update_request(&vidc_inst->pm_qos, PM_QOS_DEFAULT_VALUE); pm_qos_remove_request(&vidc_inst->pm_qos); } rc = msm_vidc_close(vidc_inst); return rc; }
static int msm_v4l2_close(struct file *filp) { int rc = 0; struct msm_vidc_inst *vidc_inst; trace_msm_v4l2_vidc_close_start("msm_v4l2_close start"); vidc_inst = get_vidc_inst(filp, NULL); rc = msm_vidc_release_buffers(vidc_inst, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); if (rc) dprintk(VIDC_WARN, "Failed in %s for release output buffers\n", __func__); rc = msm_vidc_close(vidc_inst); #ifdef CONFIG_LGE_UNDERRUN dprintk(VIDC_ERR, "msm_vidc: pm_qos_update_request, PM_QOS_DEFAULT_VALUE\n"); pm_qos_update_request(&msm_v4l2_vidc_pm_qos_request, PM_QOS_DEFAULT_VALUE); dprintk(VIDC_ERR, "msm_vidc: pm_qos_remove_request\n"); pm_qos_remove_request(&msm_v4l2_vidc_pm_qos_request); #endif trace_msm_v4l2_vidc_close_end("msm_v4l2_close end"); return rc; }
int msm_v4l2_s_fmt(struct file *file, void *fh, struct v4l2_format *f) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); return msm_vidc_s_fmt((void *)vidc_inst, f); }
int msm_v4l2_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc *f) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); return msm_vidc_enum_fmt((void *)vidc_inst, f); }
static int msm_v4l2_querycap(struct file *filp, void *fh, struct v4l2_capability *cap) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(filp, fh); return msm_vidc_querycap((void *)vidc_inst, cap); }
static unsigned int msm_v4l2_poll(struct file *filp, struct poll_table_struct *pt) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(filp, NULL); return msm_vidc_poll((void *)vidc_inst, filp, pt); }
static int msm_v4l2_enum_framesizes(struct file *file, void *fh, struct v4l2_frmsizeenum *fsize) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); return msm_vidc_enum_framesizes((void *)vidc_inst, fsize); }
static int msm_v4l2_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); return msm_vidc_s_parm((void *)vidc_inst, a); }
int msm_v4l2_streamoff(struct file *file, void *fh, enum v4l2_buf_type i) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); return msm_vidc_streamoff((void *)vidc_inst, i); }
int msm_v4l2_dqbuf(struct file *file, void *fh, struct v4l2_buffer *b) { return msm_vidc_dqbuf(get_vidc_inst(file, fh), b); }
int msm_v4l2_g_ctrl(struct file *file, void *fh, struct v4l2_control *a) { struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh); return msm_vidc_g_ctrl((void *)vidc_inst, a); }