summaryrefslogtreecommitdiffstats
path: root/drivers/dma/edma.c
diff options
context:
space:
mode:
authorJoel Fernandes <joelf@ti.com>2013-09-24 01:05:15 +0200
committerVinod Koul <vinod.koul@intel.com>2013-10-21 09:25:29 +0200
commit2abd5f1b97fce6e197be01d67a9567c7793c80d3 (patch)
treebe4461d09afc0ed1dfe30a5484e8f75099334349 /drivers/dma/edma.c
parentdma: edma: Split out PaRAM set calculations into its own function (diff)
downloadlinux-2abd5f1b97fce6e197be01d67a9567c7793c80d3.tar.xz
linux-2abd5f1b97fce6e197be01d67a9567c7793c80d3.zip
dma: edma: Increase maximum SG limit to 20
davinci-pcm uses 16 as the no.of periods. With this, in EDMA we have to allocate atleast 17 slots: 1 slot for channel, and 16 slots the periods. Due to this, the MAX_NR_SG limitation causes problems, set it to 20 to make cyclic DMA work when davinci-pcm is converted to use DMA Engine. Also add a comment clarifying this. Signed-off-by: Joel Fernandes <joelf@ti.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/edma.c')
-rw-r--r--drivers/dma/edma.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index e47e3c9e37b2..79b046b3e2f0 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -46,8 +46,14 @@
#define EDMA_CHANS 64
#endif /* CONFIG_ARCH_DAVINCI_DA8XX */
-/* Max of 16 segments per channel to conserve PaRAM slots */
-#define MAX_NR_SG 16
+/*
+ * Max of 20 segments per channel to conserve PaRAM slots
+ * Also note that MAX_NR_SG should be atleast the no.of periods
+ * that are required for ASoC, otherwise DMA prep calls will
+ * fail. Today davinci-pcm is the only user of this driver and
+ * requires atleast 17 slots, so we setup the default to 20.
+ */
+#define MAX_NR_SG 20
#define EDMA_MAX_SLOTS MAX_NR_SG
#define EDMA_DESCRIPTORS 16