summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorNicolin Chen <Guangyu.Chen@freescale.com>2014-03-07 19:59:04 +0800
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 08:57:53 -0500
commita7f1d47078a8b61b1cf13b9f6cd07246268acc0b (patch)
tree475b072c7878877ecd875a9591682407a5860868 /sound
parent5b3a4da2fd01e8fe79d5c16b06ff96f0d5c5f8fa (diff)
ENGR00300188-1 ASoC: imx-hdmi-dma: Double the buffer and period sizes
We found HDMI Audio has a performance issue when playback 8 channels 192KHz files, CPU might lag its interrupt responsing while SDMA continues updating HDMI internal AHB DMA's address and restarting AHB DMA, which resulted the noise when AHB DMA access overlaps with the data copy procedures in this driver. Thus we here double the buffer size and period size of HDMI Audio to chop the CPU interrupt to its half in the same span of time so that we can keep the data copy procedures safe and provent it from overlapping access with AHB DMA. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/fsl/imx-hdmi-dma.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sound/soc/fsl/imx-hdmi-dma.c b/sound/soc/fsl/imx-hdmi-dma.c
index 4155122f8d0e..f3a7a9be05a2 100644
--- a/sound/soc/fsl/imx-hdmi-dma.c
+++ b/sound/soc/fsl/imx-hdmi-dma.c
@@ -1,7 +1,7 @@
/*
* imx-hdmi-dma.c -- HDMI DMA driver for ALSA Soc Audio Layer
*
- * Copyright (C) 2011-2013 Freescale Semiconductor, Inc.
+ * Copyright (C) 2011-2014 Freescale Semiconductor, Inc.
*
* based on imx-pcm-dma-mx2.c
* Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de>
@@ -121,9 +121,9 @@ EXPORT_SYMBOL(iec_header);
* transmitted in a period, it can be continued in the next period. This
* is necessary for 6 ch.
*/
-#define HDMI_DMA_PERIOD_BYTES (6144)
-#define HDMI_DMA_BUF_SIZE (64 * 1024)
-#define HDMI_PCM_BUF_SIZE (64 * 1024)
+#define HDMI_DMA_PERIOD_BYTES (12288)
+#define HDMI_DMA_BUF_SIZE (128 * 1024)
+#define HDMI_PCM_BUF_SIZE (128 * 1024)
#define hdmi_audio_debug(dev, reg) \
dev_dbg(dev, #reg ": 0x%02x\n", hdmi_readb(reg))