1. 16 7月, 2007 8 次提交
  2. 14 7月, 2007 26 次提交
  3. 13 7月, 2007 6 次提交
    • D
      ioatdma: add the unisys "i/oat" pci vendor/device id · 3039f073
      Dan Williams 提交于
      Cc: John Magolan <john.magolan@unisys.com>
      Signed-off-by: NShannon Nelson <shannon.nelson@intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      3039f073
    • D
      ARM: Add drivers/dma to arch/arm/Kconfig · 5816815f
      Dan Williams 提交于
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      5816815f
    • D
      iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver · 2492c845
      Dan Williams 提交于
      Adds the platform device definitions and the architecture specific support
      routines (i.e. register initialization and descriptor formats) for the
      iop-adma driver.
      
      Changelog:
      * add support for > 1k zero sum buffer sizes
      * added dma/aau platform devices to iq80321 and iq80332 setup
      * fixed the calculation in iop_desc_is_aligned
      * support xor buffer sizes larger than 16MB
      * fix places where software descriptors are assumed to be contiguous, only
        hardware descriptors are contiguous for up to a PAGE_SIZE buffer size
      * convert to async_tx
      * add interrupt support
      * add platform devices for 80219 boards
      * do not call platform register macros in driver code
      * remove switch() statements for compatible register offsets/layouts
      * change over to bitmap based capabilities
      * remove unnecessary ARM assembly statement
      * checkpatch.pl fixes
      * gpl v2 only correction
      * phys move to dma_async_tx_descriptor
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      2492c845
    • D
      iop13xx: surface the iop13xx adma units to the iop-adma driver · 39a8d7d1
      Dan Williams 提交于
      Adds the platform device definitions and the architecture specific
      support routines (i.e. register initialization and descriptor formats) for the
      iop-adma driver.
      
      Changelog:
      * added 'descriptor pool size' to the platform data
      * add base support for buffer sizes larger than 16MB (hw max)
      * build error fix from Kirill A. Shutemov
      * rebase for async_tx changes
      * add interrupt support
      * do not call platform register macros in driver code
      * remove unnecessary ARM assembly statement
      * checkpatch.pl fixes
      * gpl v2 only correction
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      39a8d7d1
    • D
      dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines · c2110923
      Dan Williams 提交于
      The Intel(R) IOP series of i/o processors integrate an Xscale core with
      raid acceleration engines.  The capabilities per platform are:
      
      iop219:
       (2) copy engines
      iop321:
       (2) copy engines
       (1) xor and block fill engine
      iop33x:
       (2) copy and crc32c engines
       (1) xor, xor zero sum, pq, pq zero sum, and block fill engine
      iop34x (iop13xx):
       (2) copy, crc32c, xor, xor zero sum, and block fill engines
       (1) copy, crc32c, xor, xor zero sum, pq, pq zero sum, and block fill engine
      
      The driver supports the features of the async_tx api:
      * asynchronous notification of operation completion
      * implicit (interupt triggered) handling of inter-channel transaction
        dependencies
      
      The driver adapts to the platform it is running by two methods.
      1/ #include <asm/arch/adma.h> which defines the hardware specific
         iop_chan_* and iop_desc_* routines as a series of static inline
         functions
      2/ The private platform data attached to the platform_device defines the
         capabilities of the channels
      
      20070626: Callbacks are run in a tasklet.  Given the recent discussion on
      LKML about killing tasklets in favor of workqueues I did a quick conversion
      of the driver.  Raid5 resync performance dropped from 50MB/s to 30MB/s, so
      the tasklet implementation remains until a generic softirq interface is
      available.
      
      Changelog:
      * fixed a slot allocation bug in do_iop13xx_adma_xor that caused too few
      slots to be requested eventually leading to data corruption
      * enabled the slot allocation routine to attempt to free slots before
      returning -ENOMEM
      * switched the cleanup routine to solely use the software chain and the
      status register to determine if a descriptor is complete.  This is
      necessary to support other IOP engines that do not have status writeback
      capability
      * make the driver iop generic
      * modified the allocation routines to understand allocating a group of
      slots for a single operation
      * added a null xor initialization operation for the xor only channel on
      iop3xx
      * support xor operations on buffers larger than the hardware maximum
      * split the do_* routines into separate prep, src/dest set, submit stages
      * added async_tx support (dependent operations initiation at cleanup time)
      * simplified group handling
      * added interrupt support (callbacks via tasklets)
      * brought the pending depth inline with ioat (i.e. 4 descriptors)
      * drop dma mapping methods, suggested by Chris Leech
      * don't use inline in C files, Adrian Bunk
      * remove static tasklet declarations
      * make iop_adma_alloc_slots easier to read and remove chances for a
        corrupted descriptor chain
      * fix locking bug in iop_adma_alloc_chan_resources, Benjamin Herrenschmidt
      * convert capabilities over to dma_cap_mask_t
      * fixup sparse warnings
      * add descriptor flush before iop_chan_enable
      * checkpatch.pl fixes
      * gpl v2 only correction
      * move set_src, set_dest, submit to async_tx methods
      * move group_list and phys to async_tx
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      c2110923
    • D
      md: remove raid5 compute_block and compute_parity5 · f6dff381
      Dan Williams 提交于
      replaced by raid5_run_ops
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Acked-By: NNeilBrown <neilb@suse.de>
      f6dff381