[Sound-open-firmware] [PATCH v3 0/6] Introducing new dma_get() API

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Sat Jun 9 00:18:25 CEST 2018


This set of patches proposes a new API for dma_get() that
procures a DMAC based on the requested copy capability
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: Sanity test Score 10/11. 
	Failed Simultaneous playback & capture feature test. This issue is
unrelated to this patch. 

2. Up Squared Board w Hifiberry DAC+: Sanity Test Score: 6/11
	Failed Capture feature tests as the hifiberry doesnt support capture
but passed all other feature tests.

Kernel: https://github.com/thesofproject/linux branch: topic/dev
SOF Repo: https://github.com/thesofproject/linux/sof branch:master
SOFT: https://github.com/thesofproject/linux/sof branch: master

v2 changes:
	1. dma_get() consolidated for all platforms
	2. dmac definitions include copy capability
	3. Added some helper api's to retreive platform DMAC info

v3 changes:
	1. Not RFC anymore. First set of real patches with new API.
	2. Added type of DMA to platform DMAC definitions
	3. Updated atomic arithmetic calls

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

 src/arch/xtensa/Makefile.am                   |  1 +
 src/audio/dai.c                               |  5 +-
 src/audio/host.c                              | 18 +++--
 src/drivers/dw-dma.c                          | 11 +++
 src/drivers/hda-dma.c                         |  8 ++
 src/host/common_test.c                        |  2 +-
 src/include/sof/dma.h                         | 29 ++++++-
 src/ipc/apl-ipc.c                             |  6 +-
 src/ipc/byt-ipc.c                             |  7 +-
 src/ipc/cnl-ipc.c                             |  6 +-
 src/ipc/dma-copy.c                            |  7 +-
 src/ipc/hsw-ipc.c                             |  7 +-
 src/lib/Makefile.am                           | 11 +++
 src/lib/dma-trace.c                           |  2 +-
 src/lib/dma.c                                 | 80 +++++++++++++++++++
 src/platform/apollolake/dma.c                 | 28 +++++--
 .../apollolake/include/platform/dma.h         |  5 ++
 .../apollolake/include/platform/platform.h    |  3 -
 src/platform/apollolake/platform.c            | 22 +----
 src/platform/baytrail/dma.c                   | 33 ++++++--
 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                 | 28 +++++--
 .../cannonlake/include/platform/dma.h         |  6 ++
 .../cannonlake/include/platform/platform.h    |  3 -
 src/platform/cannonlake/platform.c            | 23 +-----
 src/platform/haswell/dma.c                    | 38 ++++++---
 src/platform/haswell/include/platform/dma.h   |  5 ++
 .../haswell/include/platform/platform.h       |  3 -
 src/platform/haswell/platform.c               | 21 +----
 31 files changed, 312 insertions(+), 141 deletions(-)
 create mode 100644 src/lib/dma.c

-- 
2.17.1



More information about the Sound-open-firmware mailing list