1. 24 1月, 2020 2 次提交
    • D
      dmaengine: break out channel registration · d2fb0a04
      Dave Jiang 提交于
      In preparation for dynamic channel registration, the code segment that
      does the channel registration is broken out to its own function.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Link: https://lore.kernel.org/r/157965022778.73301.8929944324898985438.stgit@djiang5-desk3.ch.intel.comSigned-off-by: NVinod Koul <vkoul@kernel.org>
      d2fb0a04
    • D
      x86/asm: add iosubmit_cmds512() based on MOVDIR64B CPU instruction · 232bb01b
      Dave Jiang 提交于
      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: NDave Jiang <dave.jiang@intel.com>
      Acked-by: NBorislav Petkov <bp@suse.de>
      Link: https://lore.kernel.org/r/157965022175.73301.10174614665472962675.stgit@djiang5-desk3.ch.intel.comSigned-off-by: NVinod Koul <vkoul@kernel.org>
      232bb01b
  2. 23 1月, 2020 2 次提交
  3. 21 1月, 2020 18 次提交
  4. 16 1月, 2020 2 次提交
    • G
      soc: ti: k3: add navss ringacc driver · 3277e8aa
      Grygorii Strashko 提交于
      The Ring Accelerator (RINGACC or RA) provides hardware acceleration to
      enable straightforward passing of work between a producer and a consumer.
      There is one RINGACC module per NAVSS on TI AM65x SoCs.
      
      The RINGACC converts constant-address read and write accesses to equivalent
      read or write accesses to a circular data structure in memory. The RINGACC
      eliminates the need for each DMA controller which needs to access ring
      elements from having to know the current state of the ring (base address,
      current offset). The DMA controller performs a read or write access to a
      specific address range (which maps to the source interface on the RINGACC)
      and the RINGACC replaces the address for the transaction with a new address
      which corresponds to the head or tail element of the ring (head for reads,
      tail for writes). Since the RINGACC maintains the state, multiple DMA
      controllers or channels are allowed to coherently share the same rings as
      applicable. The RINGACC is able to place data which is destined towards
      software into cached memory directly.
      
      Supported ring modes:
      - Ring Mode
      - Messaging Mode
      - Credentials Mode
      - Queue Manager Mode
      
      TI-SCI integration:
      
      Texas Instrument's System Control Interface (TI-SCI) Message Protocol now
      has control over Ringacc module resources management (RM) and Rings
      configuration.
      
      The corresponding support of TI-SCI Ringacc module RM protocol
      introduced as option through DT parameters:
      - ti,sci: phandle on TI-SCI firmware controller DT node
      - ti,sci-dev-id: TI-SCI device identifier as per TI-SCI firmware spec
      
      if both parameters present - Ringacc driver will configure/free/reset Rings
      using TI-SCI Message Ringacc RM Protocol.
      
      The Ringacc driver manages Rings allocation by itself now and requests
      TI-SCI firmware to allocate and configure specific Rings only. It's done
      this way because, Linux driver implements two stage Rings allocation and
      configuration (allocate ring and configure ring) while TI-SCI Message
      Protocol supports only one combined operation (allocate+configure).
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Reviewed-by: NTero Kristo <t-kristo@ti.com>
      Tested-by: NKeerthy <j-keerthy@ti.com>
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@oracle.com>
      3277e8aa
    • G
      bindings: soc: ti: add documentation for k3 ringacc · 59be028f
      Grygorii Strashko 提交于
      The Ring Accelerator (RINGACC or RA) provides hardware acceleration to
      enable straightforward passing of work between a producer and a consumer.
      There is one RINGACC module per NAVSS on TI AM65x and j721e.
      
      This patch introduces RINGACC device tree bindings.
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Reviewed-by: NRob Herring <robh@kernel.org>
      Tested-by: NKeerthy <j-keerthy@ti.com>
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@oracle.com>
      59be028f
  5. 15 1月, 2020 3 次提交
  6. 26 12月, 2019 11 次提交
  7. 24 12月, 2019 2 次提交