lkml.org 
[lkml]   [2018]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.9 105/281] ASoC: rsnd: SSI PIO adjust to 24bit mode
    Date
    From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

    [ 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

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    sound/soc/sh/rcar/ssi.c | 11 +++++++++--
    1 file changed, 9 insertions(+), 2 deletions(-)

    diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
    index a9a43acce30e..40fc48bc10ae 100644
    --- a/sound/soc/sh/rcar/ssi.c
    +++ b/sound/soc/sh/rcar/ssi.c
    @@ -543,6 +543,13 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod,
    struct 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
    @@ -550,9 +557,9 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod,
    * 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));
    }
    --
    2.14.1
    \
     
     \ /
      Last update: 2018-03-19 22:16    [W:4.222 / U:0.556 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site