On 18/06/18 06:38, Ezequiel Garcia wrote: > As per the documentation, job_abort is not required > to wait until the current job finishes. It is redundant > to do so, as the core will perform the wait operation. > > Remove the wait infrastructure completely. Sylwester, can you review this? Thanks! Hans > > Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > Cc: Kamil Debski <kamil@xxxxxxxxx> > Cc: Andrzej Hajda <a.hajda@xxxxxxxxxxx> > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> > --- > drivers/media/platform/s5p-g2d/g2d.c | 11 ----------- > drivers/media/platform/s5p-g2d/g2d.h | 1 - > 2 files changed, 12 deletions(-) > > diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c > index 66aa8cf1d048..e98708883413 100644 > --- a/drivers/media/platform/s5p-g2d/g2d.c > +++ b/drivers/media/platform/s5p-g2d/g2d.c > @@ -483,15 +483,6 @@ static int vidioc_s_crop(struct file *file, void *prv, const struct v4l2_crop *c > > static void job_abort(void *prv) > { > - struct g2d_ctx *ctx = prv; > - struct g2d_dev *dev = ctx->dev; > - > - if (dev->curr == NULL) /* No job currently running */ > - return; > - > - wait_event_timeout(dev->irq_queue, > - dev->curr == NULL, > - msecs_to_jiffies(G2D_TIMEOUT)); > } > > static void device_run(void *prv) > @@ -563,7 +554,6 @@ static irqreturn_t g2d_isr(int irq, void *prv) > v4l2_m2m_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx); > > dev->curr = NULL; > - wake_up(&dev->irq_queue); > return IRQ_HANDLED; > } > > @@ -633,7 +623,6 @@ static int g2d_probe(struct platform_device *pdev) > spin_lock_init(&dev->ctrl_lock); > mutex_init(&dev->mutex); > atomic_set(&dev->num_inst, 0); > - init_waitqueue_head(&dev->irq_queue); > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > diff --git a/drivers/media/platform/s5p-g2d/g2d.h b/drivers/media/platform/s5p-g2d/g2d.h > index dd812b557e87..9ffb458a1b93 100644 > --- a/drivers/media/platform/s5p-g2d/g2d.h > +++ b/drivers/media/platform/s5p-g2d/g2d.h > @@ -31,7 +31,6 @@ struct g2d_dev { > struct g2d_ctx *curr; > struct g2d_variant *variant; > int irq; > - wait_queue_head_t irq_queue; > }; > > struct g2d_frame { >