[Sound-open-firmware] [PATCH v4 0/5] New API for dma_get()

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Tue Jun 12 05:37:10 CEST 2018


This set of patches proposes a new API for dma_get() that
procures a DMAC based on the requested copy dir, caps, dev type
and flags indicating shared/exclusive access. It also updates the
existing user of dma_get() to use the new API based on the specific
usage. The API uses the number of channels draning in each DMAC
to balance the load between the platform DMAC's for users requesting
shared access privilege. This provides a primitive level of QoS and
prevents overloading any DMAC.
 
The platform DMAC definitions have also been updated to
include information about copy capabilities supported and the
type of DMA.

 Test Results:
 1. Minnowboard Turbot w 5651: Passed all feature tests
 2. Up Squared Board w Hifiberry DAC+: Passed all playback feature tests

v4 changes:
	1. Modified platform DMAC definition with copy cap, copy dir
	   dev types supported
	2. Modified dma_get() API to request DMAC based on above
	   criteria

Ranjani Sridharan (5):
  platform: dma: move dmac initialization
  dma: update platform DMAC definitions with the supported dev types,
    dir and capabilities
  dma: introduce parameter to store the number of channels draining
  dma: Introduce new API for dma_get()
  dma:trace: dma_copy_new() does not need DMAC ID anymore

 src/arch/xtensa/Makefile.am                   |  1 +
 src/audio/dai.c                               |  7 +-
 src/audio/host.c                              | 14 +--
 src/drivers/dw-dma.c                          | 13 ++-
 src/drivers/hda-dma.c                         | 10 ++-
 src/host/common_test.c                        |  2 +-
 src/include/sof/dma.h                         | 43 ++++++---
 src/ipc/apl-ipc.c                             |  8 +-
 src/ipc/byt-ipc.c                             |  9 +-
 src/ipc/cnl-ipc.c                             |  8 +-
 src/ipc/dma-copy.c                            | 10 ++-
 src/ipc/hsw-ipc.c                             |  9 +-
 src/lib/Makefile.am                           | 11 ++-
 src/lib/dma-trace.c                           |  2 +-
 src/lib/dma.c                                 | 89 +++++++++++++++++++
 src/platform/apollolake/dma.c                 | 39 ++++++--
 .../apollolake/include/platform/dma.h         |  5 ++
 .../apollolake/include/platform/platform.h    |  3 -
 src/platform/apollolake/platform.c            | 22 +----
 src/platform/baytrail/dma.c                   | 34 +++++--
 src/platform/baytrail/include/platform/dma.h  |  9 ++
 .../baytrail/include/platform/platform.h      |  3 -
 src/platform/baytrail/platform.c              | 23 +----
 src/platform/cannonlake/dma.c                 | 39 ++++++--
 .../cannonlake/include/platform/dma.h         |  6 ++
 .../cannonlake/include/platform/platform.h    |  3 -
 src/platform/cannonlake/platform.c            | 23 +----
 src/platform/haswell/dma.c                    | 40 +++++++--
 src/platform/haswell/include/platform/dma.h   |  5 ++
 .../haswell/include/platform/platform.h       |  3 -
 src/platform/haswell/platform.c               | 21 +----
 31 files changed, 362 insertions(+), 152 deletions(-)
 create mode 100644 src/lib/dma.c

-- 
2.17.1



More information about the Sound-open-firmware mailing list