Merge "msm_shared: bam: Add support for cached descriptors."
diff --git a/platform/msm_shared/bam.c b/platform/msm_shared/bam.c
index cb6fc4c..57361c6 100644
--- a/platform/msm_shared/bam.c
+++ b/platform/msm_shared/bam.c
@@ -30,6 +30,7 @@
#include <reg.h>
#include <debug.h>
#include <stdlib.h>
+#include <arch/ops.h>
#include <platform.h>
#include <platform/interrupts.h>
#include <platform/iomap.h>
@@ -450,11 +451,13 @@
goto bam_add_one_desc_error;
}
- desc->flags = flags;
- desc->addr = (uint32_t)data_ptr;
- desc->size = (uint16_t)len;
+ desc->flags = flags;
+ desc->addr = (uint32_t)data_ptr;
+ desc->size = (uint16_t)len;
desc->reserved = 0;
+ arch_clean_invalidate_cache_range((addr_t) desc, BAM_DESC_SIZE);
+
/* Update the FIFO to point to the head */
bam->pipe[pipe_num].fifo.current = fifo_getnext(&bam->pipe[pipe_num].fifo, desc);
diff --git a/platform/msm_shared/include/bam.h b/platform/msm_shared/include/bam.h
index 84f9fb4..099b1b6 100644
--- a/platform/msm_shared/include/bam.h
+++ b/platform/msm_shared/include/bam.h
@@ -35,6 +35,7 @@
#define BAM_DESC_SIZE 8
#define BAM_CE_SIZE 16
#define BAM_MAX_DESC_DATA_LEN 0xFFFF
+#define BAM_NDP_MAX_DESC_DATA_LEN 0x7FFF
#define BAM_DATA_READ 0
#define BAM_DATA_WRITE 1