static void gsc_m2m_job_abort(void *priv) { struct gsc_ctx *ctx = priv; struct gsc_dev *gsc = ctx->gsc_dev; int ret; ret = gsc_ctx_stop_req(ctx); /* FIXME: need to add v4l2_m2m_job_finish(fail) if ret is timeout */ if (ret < 0) dev_err(&gsc->pdev->dev, "wait timeout : %s\n", __func__); }
static int gsc_m2m_stop_streaming(struct vb2_queue *q) { struct gsc_ctx *ctx = q->drv_priv; struct gsc_dev *gsc = ctx->gsc_dev; int ret; vb2_wait_for_all_buffers(q); ret = gsc_ctx_stop_req(ctx); /* FIXME: need to add v4l2_m2m_job_finish(fail) if ret is timeout */ if (ret < 0) dev_err(&gsc->pdev->dev, "wait timeout : %s\n", __func__); return 0; }
static int gsc_m2m_stop_streaming(struct vb2_queue *q) { struct gsc_ctx *ctx = q->drv_priv; struct gsc_dev *gsc = ctx->gsc_dev; struct device *dev = &gsc->pdev->dev; int ret; ret = gsc_ctx_stop_req(ctx); /* FIXME: need to add v4l2_m2m_job_finish(fail) if ret is timeout */ if (ret < 0) dev_err(&gsc->pdev->dev, "wait timeout : %s\n", __func__); pm_runtime_put_sync(dev); platform_sysmmu_off(dev); return 0; }
static int gsc_m2m_stop_streaming(struct vb2_queue *q) { struct gsc_ctx *ctx = q->drv_priv; struct gsc_dev *gsc = ctx->gsc_dev; int ret; flush_work(&ctx->fence_work); ret = gsc_wait_buffer_done(q); if (ret < 0) { gsc_err("queued count is still %d", atomic_read(&q->queued_count)); } ret = gsc_ctx_stop_req(ctx); /* FIXME: need to add v4l2_m2m_job_finish(fail) if ret is timeout */ if (ret < 0) dev_err(&gsc->pdev->dev, "wait timeout : %s\n", __func__); return 0; }