lkml.org 
[lkml]   [2018]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 104/310] ASoC: rsnd: SSI PIO adjust to 24bit mode
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    sound/soc/sh/rcar/ssi.c | 11 +++++++++--
    1 file changed, 9 insertions(+), 2 deletions(-)

    --- a/sound/soc/sh/rcar/ssi.c
    +++ b/sound/soc/sh/rcar/ssi.c
    @@ -552,6 +552,13 @@ static void __rsnd_ssi_interrupt(struct
    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
    @@ -559,9 +566,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));
    }

    \
     
     \ /
      Last update: 2018-04-11 20:59    [W:4.199 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site