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__);
}
Exemple #2
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;

	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;
}
Exemple #3
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;
}