1. 24 Jan, 2020 2 commits
    • Dave Jiang's avatar
      dmaengine: break out channel registration · d2fb0a04
      Dave Jiang authored
      In preparation for dynamic channel registration, the code segment that
      does the channel registration is broken out to its own function.
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Link: https://lore.kernel.org/r/157965022778.73301.8929944324898985438.stgit@djiang5-desk3.ch.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      d2fb0a04
    • Dave Jiang's avatar
      x86/asm: add iosubmit_cmds512() based on MOVDIR64B CPU instruction · 232bb01b
      Dave Jiang authored
      With the introduction of MOVDIR64B instruction, there is now an instruction
      that can write 64 bytes of data atomically.
      
      Quoting from Intel SDM:
      "There is no atomicity guarantee provided for the 64-byte load operation
      from source address, and processor implementations may use multiple
      load operations to read the 64-bytes. The 64-byte direct-store issued
      by MOVDIR64B guarantees 64-byte write-completion atomicity. This means
      that the data arrives at the destination in a single undivided 64-byte
      write transaction."
      
      We have identified at least 3 different use cases for this instruction in
      the format of func(dst, src, count):
      1) Clear poison / Initialize MKTME memory
         @dst is normal memory.
         @src in normal memory. Does not increment. (Copy same line to all
         targets)
         @count (to clear/init multiple lines)
      2) Submit command(s) to new devices
         @dst is a special MMIO region for a device. Does not increment.
         @src is normal memory. Increments.
         @count usually is 1, but can be multiple.
      3) Copy to iomem in big chunks
         @dst is iomem and increments
         @src in normal memory and increments
         @count is number of chunks to copy
      
      Add support for case #2 to support device that will accept commands via
      this instruction. We provide a @count in order to submit a batch of
      preprogrammed descriptors in virtually contiguous memory. This
      allows the caller to submit multiple descriptors to a device with a single
      submission. The special device requires the entire 64bytes descriptor to
      be written atomically and will accept MOVDIR64B instruction.
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Acked-by: default avatarBorislav Petkov <bp@suse.de>
      Link: https://lore.kernel.org/r/157965022175.73301.10174614665472962675.stgit@djiang5-desk3.ch.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      232bb01b
  2. 23 Jan, 2020 2 commits
  3. 21 Jan, 2020 18 commits
  4. 15 Jan, 2020 5 commits
  5. 26 Dec, 2019 11 commits
  6. 24 Dec, 2019 2 commits