• Ira Snyder's avatar
    fsldma: simplify IRQ probing and handling · d3f620b2
    Ira Snyder authored
    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: default avatarIra W. Snyder <iws@ovro.caltech.edu>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    d3f620b2
fsldma.c 36.4 KB