The core implementation applies the msbits constraint to samples where it should not. Do not ask core to do this, the original code does the right thing.
This reverts commit 6bb4f827f52a81db10405a4363877140273d669f. --- sound/soc/codecs/tlv320dac33.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c index 21ccf0a..f0aad26 100644 --- a/sound/soc/codecs/tlv320dac33.c +++ b/sound/soc/codecs/tlv320dac33.c @@ -806,6 +806,8 @@ static int dac33_startup(struct snd_pcm_substream *substream, /* Stream started, save the substream pointer */ dac33->substream = substream;
+ snd_pcm_hw_constraint_msbits(substream->runtime, 0, 32, 24); + return 0; }
@@ -1514,7 +1516,6 @@ static struct snd_soc_dai_driver dac33_dai = { .channels_max = 2, .rates = DAC33_RATES, .formats = DAC33_FORMATS,}, - .sig_bits = 24, .ops = &dac33_dai_ops, };