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)
committerJiri Slaby <jslaby@suse.cz>
Mon, 9 Jun 2014 13:53:50 +0000 (15:53 +0200)
commitae5b411abd7a36af90aa0313e3e992b065eac944
treebcd29940c2ca111eb871a8d65cde8b41473f179e
parentac0dc6aaaf89fb8a924bf5a2e83f55a82e76a527
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: Jiri Slaby <jslaby@suse.cz>
drivers/dma/dw/core.c