diff options
author | Nicolin Chen <Guangyu.Chen@freescale.com> | 2014-03-07 19:59:04 +0800 |
---|---|---|
committer | Nicolin Chen <Guangyu.Chen@freescale.com> | 2014-03-11 10:42:17 +0800 |
commit | a510c49de7bfda5462c6df3c24e6454ca8efe6a6 (patch) | |
tree | 502a0b612ec4fea847c57ebd68a7724d48df68cc /sound | |
parent | 367bbe4a01a449e4e8a7dacd23c830910b47e13b (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>
(cherry picked from commit 04af1a351e016f52276ae002fd9f64b6b2962168)
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/fsl/imx-hdmi-dma.c | 8 |
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)) |