lkml.org 
[lkml]   [2020]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 08/32] ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
    Date
    From: Matthias Blankertz <matthias.blankertz@cetitec.com>

    [ Upstream commit b94e164759b82d0c1c80d4b1c8f12c9bee83f11d ]

    The HDMI?_SEL register maps up to four stereo SSI data lanes onto the
    sdata[0..3] inputs of the HDMI output block. The upper half of the
    register contains four blocks of 4 bits, with the most significant
    controlling the sdata3 line and the least significant the sdata0 line.

    The shift calculation has an off-by-one error, causing the parent SSI to
    be mapped to sdata3, the first multi-SSI child to sdata0 and so forth.
    As the parent SSI transmits the stereo L/R channels, and the HDMI core
    expects it on the sdata0 line, this causes no audio to be output when
    playing stereo audio on a multichannel capable HDMI out, and
    multichannel audio has permutated channels.

    Fix the shift calculation to map the parent SSI to sdata0, the first
    child to sdata1 etc.

    Signed-off-by: Matthias Blankertz <matthias.blankertz@cetitec.com>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/20200415141017.384017-3-matthias.blankertz@cetitec.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/sh/rcar/ssiu.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/sound/soc/sh/rcar/ssiu.c b/sound/soc/sh/rcar/ssiu.c
    index 016fbf5ac242c..7b5eb316c3665 100644
    --- a/sound/soc/sh/rcar/ssiu.c
    +++ b/sound/soc/sh/rcar/ssiu.c
    @@ -172,7 +172,7 @@ static int rsnd_ssiu_init_gen2(struct rsnd_mod *mod,
    i;

    for_each_rsnd_mod_array(i, pos, io, rsnd_ssi_array) {
    - shift = (i * 4) + 16;
    + shift = (i * 4) + 20;
    val = (val & ~(0xF << shift)) |
    rsnd_mod_id(pos) << shift;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-05-08 14:53    [W:3.691 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site