Patch "ASoC: rsnd: SSI PIO adjust to 24bit mode" has been added to the 4.4-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
ASoC: rsnd: SSI PIO adjust to 24bit mode
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
asoc-rsnd-ssi-pio-adjust-to-24bit-mode.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Tue Apr 10 10:31:53 CEST 2018
From: Kuninori Morimoto <[email protected]>
Date: Wed, 24 May 2017 01:17:10 +0000
Subject: ASoC: rsnd: SSI PIO adjust to 24bit mode
From: Kuninori Morimoto <[email protected]>
[ Upstream commit 7819a942de7b993771bd9377babc80485fe7606b ]
commit 90431eb49bff ("ASoC: rsnd: don't use PDTA bit for 24bit on SSI") fixups 24bit mode data alignment, but PIO was not cared. This patch fixes PIO mode 24bit data alignment
--- sound/soc/sh/rcar/ssi.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
sound/soc/sh/rcar/ssi.c +9 -2
@@ -453,6 +453,13 @@ static void __rsnd_ssi_interrupt(structstruct snd_pcm_runtime *runtime =rsnd_io_to_runtime (io);u32 *buf = (u32 *)(runtime->dma_area +rsnd_dai_pointer_offset (io,0 )); +int shift =0 ; + +switch (runtime->sample_bits) { +case 32 : + shift =8 ; +break ; + }/* * 8/16/32 data can be assesse to TDR/RDR register
@@ -460,9 +467,9 @@ static void __rsnd_ssi_interrupt(struct* see rsnd_ssi_init() */ if (rsnd_io_is_play (io)) -rsnd_mod_write (mod,SSITDR , *buf); +rsnd_mod_write (mod,SSITDR , (*buf) << shift);else - *buf =rsnd_mod_read (mod,SSIRDR ); + *buf = (rsnd_mod_read (mod,SSIRDR ) >> shift); elapsed =rsnd_dai_pointer_update (io,sizeof (*buf)); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/asoc-rsnd-ssi-pio-adjust-to-24bit-mode.patch