|
@@ -322,7 +322,8 @@ static void v4l2_m2m_cancel_job(struct v4l2_m2m_ctx *m2m_ctx)
|
|
|
m2m_ctx->job_flags |= TRANS_ABORT;
|
|
|
if (m2m_ctx->job_flags & TRANS_RUNNING) {
|
|
|
spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
|
|
|
- m2m_dev->m2m_ops->job_abort(m2m_ctx->priv);
|
|
|
+ if (m2m_dev->m2m_ops->job_abort)
|
|
|
+ m2m_dev->m2m_ops->job_abort(m2m_ctx->priv);
|
|
|
dprintk("m2m_ctx %p running, will wait to complete", m2m_ctx);
|
|
|
wait_event(m2m_ctx->finished,
|
|
|
!(m2m_ctx->job_flags & TRANS_RUNNING));
|
|
@@ -788,8 +789,7 @@ struct v4l2_m2m_dev *v4l2_m2m_init(const struct v4l2_m2m_ops *m2m_ops)
|
|
|
{
|
|
|
struct v4l2_m2m_dev *m2m_dev;
|
|
|
|
|
|
- if (!m2m_ops || WARN_ON(!m2m_ops->device_run) ||
|
|
|
- WARN_ON(!m2m_ops->job_abort))
|
|
|
+ if (!m2m_ops || WARN_ON(!m2m_ops->device_run))
|
|
|
return ERR_PTR(-EINVAL);
|
|
|
|
|
|
m2m_dev = kzalloc(sizeof *m2m_dev, GFP_KERNEL);
|