dmaengine: IOATDMA: revise channel reset workaround on CB3.3 platforms
authorDave Jiang <dave.jiang@intel.com>
Thu, 10 Mar 2016 23:18:40 +0000 (16:18 -0700)
committerVinod Koul <vinod.koul@intel.com>
Fri, 11 Mar 2016 02:25:08 +0000 (07:55 +0530)
commitc997e30e7f65f00832abc5d92f7fd3d6ca325402
treefc26ea33c4176b5fe81af07a8e4ff8f8e6171dfd
parentdd4645ebb7d100bb04ba38ec58b499cbe95322fa
dmaengine: IOATDMA: revise channel reset workaround on CB3.3 platforms

Previously we unloaded the interrupts and reloaded in order to work around
a channel reset bug that cleared the MSIX table. This approach just isn't
practical when a reset needs to happen in the error handler that just
happens to be running in interrupt context (bottom half). It looks like we
can work around the hardware issue by just storing a shadow copy of the
MSIX table and restore it after reset.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/ioat/dma.c
drivers/dma/ioat/dma.h