ASoC: rsnd: add detail explanation of L/R conversion timing
Renesas Sound device *Hardware* L/R and Linux *Software* L/R are inverted. Because of this background, it needs to convert L/R. Then, DVC needs *Hardware* L/R, and Linux needs *Software* L/R. Because Playback/Capture needs different timing, and there is no explanation about it on source code / git log, this patch adds it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
a97a06c7ef
commit
8cce431aa2
|
@ -310,6 +310,24 @@ u32 rsnd_get_dalign(struct rsnd_mod *mod, struct rsnd_dai_stream *io)
|
|||
u32 val = 0x76543210;
|
||||
u32 mask = ~0;
|
||||
|
||||
/*
|
||||
* *Hardware* L/R and *Software* L/R are inverted.
|
||||
* We need to care about inversion timing to control
|
||||
* Playback/Capture correctly.
|
||||
* The point is [DVC] needs *Hardware* L/R, [MEM] needs *Software* L/R
|
||||
*
|
||||
* sL/R : software L/R
|
||||
* hL/R : hardware L/R
|
||||
* (*) : conversion timing
|
||||
*
|
||||
* Playback
|
||||
* sL/R (*) hL/R hL/R hL/R hL/R hL/R
|
||||
* [MEM] -> [SRC] -> [DVC] -> [CMD] -> [SSIU] -> [SSI] -> codec
|
||||
*
|
||||
* Capture
|
||||
* hL/R hL/R hL/R hL/R hL/R (*) sL/R
|
||||
* codec -> [SSI] -> [SSIU] -> [SRC] -> [DVC] -> [CMD] -> [MEM]
|
||||
*/
|
||||
if (rsnd_io_is_play(io)) {
|
||||
struct rsnd_mod *src = rsnd_io_to_mod_src(io);
|
||||
|
||||
|
|
Loading…
Reference in New Issue