6be2305da8
Changelog: * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.5 Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 46598
33 lines
1.7 KiB
Diff
33 lines
1.7 KiB
Diff
From f8517e7d836269f5fa1e1049394104417d3a7357 Mon Sep 17 00:00:00 2001
|
|
From: "B.R. Oake" <broake@openmailbox.org>
|
|
Date: Sat, 6 Sep 2014 14:58:50 +0000
|
|
Subject: [PATCH] ASoC: sunxi-codec: Fix distortion on 16-bit mono
|
|
|
|
Patch to remove distortion on 16-bit mono, based on the linux-sunxi-3.4
|
|
code.
|
|
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
---
|
|
sound/soc/sunxi/sunxi-codec.c | 4 +---
|
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
|
--- a/sound/soc/sunxi/sunxi-codec.c
|
|
+++ b/sound/soc/sunxi/sunxi-codec.c
|
|
@@ -215,9 +215,6 @@ static int sunxi_codec_prepare(struct sn
|
|
regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 0x1 << SUNXI_DAC_FIFOC_FIR_VERSION, 0x1 << SUNXI_DAC_FIFOC_FIR_VERSION);
|
|
}
|
|
|
|
- /* set TX FIFO MODE - 0 works for both 16 and 24 bits */
|
|
- regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 0x1 << SUNXI_DAC_FIFOC_TX_FIFO_MODE, 0x0 << SUNXI_DAC_FIFOC_TX_FIFO_MODE);
|
|
-
|
|
/* send last sample when DAC FIFO under run */
|
|
regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 0x1 << SUNXI_DAC_FIFOC_SEND_LASAT, 0x0 << SUNXI_DAC_FIFOC_SEND_LASAT);
|
|
} else {
|
|
@@ -329,6 +326,7 @@ static int sunxi_codec_hw_params(struct
|
|
regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 7 << SUNXI_DAC_FIFOC_DAC_FS, hwrate << SUNXI_DAC_FIFOC_DAC_FS);
|
|
regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 1 << SUNXI_DAC_FIFOC_MONO_EN, is_mono << SUNXI_DAC_FIFOC_MONO_EN);
|
|
regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 1 << SUNXI_DAC_FIFOC_TX_SAMPLE_BITS, is_24bit << SUNXI_DAC_FIFOC_TX_SAMPLE_BITS);
|
|
+ regmap_update_bits(priv->regmap, SUNXI_DAC_FIFOC, 1 << SUNXI_DAC_FIFOC_TX_FIFO_MODE, !is_24bit << SUNXI_DAC_FIFOC_TX_FIFO_MODE);
|
|
if (is_24bit)
|
|
priv->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
|
else
|