示例#1
0
文件: gsc-m2m.c 项目: 03199618/linux
static void gsc_m2m_job_abort(void *priv)
{
	struct gsc_ctx *ctx = priv;
	int ret;

	ret = gsc_m2m_ctx_stop_req(ctx);
	if (ret == -ETIMEDOUT)
		gsc_m2m_job_finish(ctx, VB2_BUF_STATE_ERROR);
}
示例#2
0
static void __gsc_m2m_job_abort(struct gsc_ctx *ctx)
{
	int ret;

	ret = gsc_m2m_ctx_stop_req(ctx);
	if ((ret == -ETIMEDOUT) || (ctx->state & GSC_CTX_ABORT)) {
		gsc_ctx_state_lock_clear(GSC_CTX_STOP_REQ | GSC_CTX_ABORT, ctx);
		gsc_m2m_job_finish(ctx, VB2_BUF_STATE_ERROR);
	}
}
示例#3
0
文件: gsc-m2m.c 项目: 03199618/linux
static int gsc_m2m_stop_streaming(struct vb2_queue *q)
{
	struct gsc_ctx *ctx = q->drv_priv;
	int ret;

	ret = gsc_m2m_ctx_stop_req(ctx);
	if (ret == -ETIMEDOUT)
		gsc_m2m_job_finish(ctx, VB2_BUF_STATE_ERROR);

	pm_runtime_put(&ctx->gsc_dev->pdev->dev);

	return 0;
}