dmaengine: dw: went back to plain {request,free}_irq() calls
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 7 May 2014 07:56:24 +0000 (10:56 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jun 2014 17:28:26 +0000 (10:28 -0700)
commit8b9df249dd60380b2347585038e643677715f591
treed15e39ba3c516ea0effb509b7357624d6844372f
parent2591d624cdfe6e24b0cb4f1da4845ba6a1dbe473
dmaengine: dw: went back to plain {request,free}_irq() calls

commit 97977f7576a89cb9436c000ae703c0d515e748ac upstream.

The commit dbde5c29 "dw_dmac: use devm_* functions to simplify code" turns
probe function to use devm_* helpers and simultaneously brings a regression. We
need to ensure irq is disabled, followed by ensuring that don't schedule any
more tasklets and then its safe to use tasklet_kill().

The free_irq() will ensure that the irq is disabled and also wait till all
scheduled interrupts are executed by invoking synchronize_irq(). So we need to
only do tasklet_kill() after invoking free_irq().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/dw/core.c