fsldma: use PCI Read Multiple command
authorIra W. Snyder <iws@ovro.caltech.edu>
Thu, 23 Apr 2009 23:17:54 +0000 (16:17 -0700)
committerDan Williams <dan.j.williams@intel.com>
Tue, 16 Jun 2009 18:29:17 +0000 (11:29 -0700)
commita7aea373b4ca428f1be2c1fedd2f26c8e3f2864d
treeca05d01f882aee0f5fd54fd6f649ca0ab566f938
parent07a2039b8eb0af4ff464efd3dfd95de5c02648c6
fsldma: use PCI Read Multiple command

By default, the Freescale 83xx DMA controller uses the PCI Read Line
command when reading data over the PCI bus. Setting the controller to use
the PCI Read Multiple command instead allows the controller to read much
larger bursts of data, which provides a drastic speed increase.

The slowdown due to using PCI Read Line was only observed when a PCI-to-PCI
bridge was between the devices trying to communicate.

A simple test driver showed an increase from 4MB/sec to 116MB/sec when
performing DMA over the PCI bus. Using DMA to transfer between blocks of
local SDRAM showed no change in performance with this patch. The dmatest
driver was also used to verify the correctness of the transfers, and showed
no errors.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Acked-by: Timur Tabi <timur@freescale.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dma/fsldma.c
drivers/dma/fsldma.h