On Tue, 2018-06-05 at 10:14 +0100, Liam Girdwood wrote:
On Mon, 2018-06-04 at 21:23 -0700, Ranjani Sridharan wrote:
This patch proposes to create a DMAC initialization routine in dma.c where it can access the platform DMAC definitions.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com
src/include/sof/dma.h | 3 +++ src/platform/apollolake/dma.c | 9 +++++++++ src/platform/apollolake/platform.c | 21 +-------------------- src/platform/baytrail/dma.c | 9 +++++++++ src/platform/baytrail/platform.c | 22 +--------------------- src/platform/cannonlake/dma.c | 9 +++++++++ src/platform/cannonlake/platform.c | 21 +-------------------- src/platform/haswell/dma.c | 9 +++++++++ src/platform/haswell/platform.c | 16 +--------------- 9 files changed, 43 insertions(+), 76 deletions(-)
diff --git a/src/include/sof/dma.h b/src/include/sof/dma.h index 7ba1298..80ca880 100644 --- a/src/include/sof/dma.h +++ b/src/include/sof/dma.h @@ -140,6 +140,9 @@ struct dma_int {
struct dma *dma_get(int dmac_id);
+/* initialize all platform DMAC's */ +void dmac_init(void);
#define dma_set_drvdata(dma, data) \ dma->private = data #define dma_get_drvdata(dma) \ diff --git a/src/platform/apollolake/dma.c b/src/platform/apollolake/dma.c index 90dde96..001bb67 100644 --- a/src/platform/apollolake/dma.c +++ b/src/platform/apollolake/dma.c @@ -181,3 +181,12 @@ struct dma *dma_get(int dmac_id)
return NULL; }
+/* Initialize all platform DMAC's */ +void dmac_init(void) +{
- int i;
- for (i = 0; i < ARRAY_SIZE(dma); i++)
dma_probe(&dma[i]);
Can you check for failure here and report it via trace_error. ditto for rest.
dma_probe() seems to always return 0 though. Never returns an error. Let me look into it.
Liam