]> git.baikalelectronics.ru Git - kernel.git/commit
fsldma: simplify IRQ probing and handling
authorIra Snyder <iws@ovro.caltech.edu>
Wed, 6 Jan 2010 13:34:04 +0000 (13:34 +0000)
committerDan Williams <dan.j.williams@intel.com>
Tue, 2 Feb 2010 21:51:41 +0000 (14:51 -0700)
commitd5db1f0aa6467546049172bd875bc0360922cbce
tree652ddf41247241ef3f82419a80e36bb5ee5dd810
parentad52e355dae273e7579490fa6d7ef0e66ab608d3
fsldma: simplify IRQ probing and handling

The IRQ probing is needlessly complex. All off the 83xx device trees in
arch/powerpc/boot/dts/ specify 5 interrupts per DMA controller: one for the
controller, and one for each channel. These interrupts are all attached to
the same IRQ line.

This causes an interesting situation if two channels interrupt at the same
time. The per-controller handler will handle the first channel, and the
per-channel handler will handle the remaining channels.

Instead of this mess, we fix the bug in the per-controller handler, and
make it handle all channels that generated an interrupt. When a
per-controller handler is specified in the device tree, we prefer to use
the shared handler instead of the per-channel handler.

The 85xx/86xx controllers do not have a per-controller interrupt, and
instead use a per-channel interrupt. This behavior has not been changed.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Documentation/powerpc/dts-bindings/fsl/dma.txt
drivers/dma/fsldma.c