Commit 5525b831 authored by Ezequiel Garcia's avatar Ezequiel Garcia Committed by Mauro Carvalho Chehab
Browse files

media: mem2mem: Make .job_abort optional



Implementing job_abort() does not make sense on some drivers.
This is not a problem, as the abort is not required to
wait for the job to finish. Quite the opposite, drivers
are encouraged not to wait.

Demote v4l2_m2m_ops.job_abort from required to optional, and
clean all drivers with dummy implementations.

Signed-off-by: default avatarEzequiel Garcia <ezequiel@collabora.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 774f1c91
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -861,14 +861,9 @@ static int mtk_jpeg_job_ready(void *priv)
	return (ctx->state == MTK_JPEG_RUNNING) ? 1 : 0;
}

static void mtk_jpeg_job_abort(void *priv)
{
}

static const struct v4l2_m2m_ops mtk_jpeg_m2m_ops = {
	.device_run = mtk_jpeg_device_run,
	.job_ready  = mtk_jpeg_job_ready,
	.job_abort  = mtk_jpeg_job_abort,
};

static int mtk_jpeg_queue_init(void *priv, struct vb2_queue *src_vq,
+0 −5
Original line number Diff line number Diff line
@@ -441,10 +441,6 @@ static void mtk_mdp_m2m_stop_streaming(struct vb2_queue *q)
	pm_runtime_put(&ctx->mdp_dev->pdev->dev);
}

static void mtk_mdp_m2m_job_abort(void *priv)
{
}

/* The color format (num_planes) must be already configured. */
static void mtk_mdp_prepare_addr(struct mtk_mdp_ctx *ctx,
				 struct vb2_buffer *vb,
@@ -1215,7 +1211,6 @@ static const struct v4l2_file_operations mtk_mdp_m2m_fops = {

static const struct v4l2_m2m_ops mtk_mdp_m2m_ops = {
	.device_run	= mtk_mdp_m2m_device_run,
	.job_abort	= mtk_mdp_m2m_job_abort,
};

int mtk_mdp_register_m2m_device(struct mtk_mdp_dev *mdp)
+0 −5
Original line number Diff line number Diff line
@@ -1492,13 +1492,8 @@ static void jpu_device_run(void *priv)
	spin_unlock_irqrestore(&ctx->jpu->lock, flags);
}

static void jpu_job_abort(void *priv)
{
}

static const struct v4l2_m2m_ops jpu_m2m_ops = {
	.device_run	= jpu_device_run,
	.job_abort	= jpu_job_abort,
};

/*
+0 −6
Original line number Diff line number Diff line
@@ -39,11 +39,6 @@
static int debug;
module_param(debug, int, 0644);

static void job_abort(void *prv)
{
	/* Can't do anything rational here */
}

static void device_run(void *prv)
{
	struct rga_ctx *ctx = prv;
@@ -104,7 +99,6 @@ static irqreturn_t rga_isr(int irq, void *prv)

static struct v4l2_m2m_ops rga_m2m_ops = {
	.device_run = device_run,
	.job_abort = job_abort,
};

static int
+0 −5
Original line number Diff line number Diff line
@@ -483,10 +483,6 @@ static int vidioc_s_crop(struct file *file, void *prv, const struct v4l2_crop *c
	return 0;
}

static void job_abort(void *prv)
{
}

static void device_run(void *prv)
{
	struct g2d_ctx *ctx = prv;
@@ -605,7 +601,6 @@ static const struct video_device g2d_videodev = {

static const struct v4l2_m2m_ops g2d_m2m_ops = {
	.device_run	= device_run,
	.job_abort	= job_abort,
};

static const struct of_device_id exynos_g2d_match[];
Loading