UPSTREAM: ALSA: pcm: Allow 32 bit sample format in IEC958 channel status helper
authorJyri Sarha <jsarha@ti.com>
Thu, 31 Mar 2016 13:35:59 +0000 (16:35 +0300)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 23 Jun 2016 03:09:03 +0000 (11:09 +0800)
Treat 32 bit sample width as if it was 24 bits when generating IEC958
channel status bits. On some platforms 24 sample width is problematic
and to get full 24 bit precision a 32 bit format, using only the 24
most significant bits, may have to be used.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 4a462ce084d5beb92cfc68f53f88c035c82e6b59)

Change-Id: I26461c0d8b92bfc6547f81006dacb7a7b3068782
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
sound/core/pcm_iec958.c

index e016871a978fec642d958accfeafb3c751d25089..5e6aed64f45150e839a4ab3bf9a4a9554791d281 100644 (file)
@@ -59,6 +59,7 @@ static int create_iec958_consumer(uint rate, uint sample_width,
                             IEC958_AES4_CON_MAX_WORDLEN_24;
                        break;
                case 24:
+               case 32: /* Assume 24-bit width for 32-bit samples. */
                        ws = IEC958_AES4_CON_WORDLEN_24_20 |
                             IEC958_AES4_CON_MAX_WORDLEN_24;
                        break;