lkml.org 
[lkml]   [2019]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 042/162] ASoC: rockchip: Fix mono capture
    Date
    [ Upstream commit 789e162a6255325325bd321ab0cd51dc7e285054 ]

    This reverts commit db51707b9c9aeedd310ebce60f15d5bb006567e0.
    Revert "ASoC: rockchip: i2s: Support mono capture"

    Previous discussion in

    https://patchwork.kernel.org/patch/10147153/

    explains the issue of the patch.
    While device is configured as 1-ch, hardware is still
    generating a 2-ch stream.
    When user space reads the data and assumes it is a 1-ch stream,
    the rate will be slower by 2x.

    Revert the change so 1-ch is not supported.
    User space can selectively take one channel data out of two channel
    if 1-ch is preferred.
    Currently, both channels record identical data.

    Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
    Link: https://lore.kernel.org/r/20190726044202.26866-1-cychiang@chromium.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/rockchip/rockchip_i2s.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c
    index 0a34d0eb8dba9..88ebaf6e1880a 100644
    --- a/sound/soc/rockchip/rockchip_i2s.c
    +++ b/sound/soc/rockchip/rockchip_i2s.c
    @@ -326,7 +326,6 @@ static int rockchip_i2s_hw_params(struct snd_pcm_substream *substream,
    val |= I2S_CHN_4;
    break;
    case 2:
    - case 1:
    val |= I2S_CHN_2;
    break;
    default:
    @@ -459,7 +458,7 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
    },
    .capture = {
    .stream_name = "Capture",
    - .channels_min = 1,
    + .channels_min = 2,
    .channels_max = 2,
    .rates = SNDRV_PCM_RATE_8000_192000,
    .formats = (SNDRV_PCM_FMTBIT_S8 |
    @@ -659,7 +658,7 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
    }

    if (!of_property_read_u32(node, "rockchip,capture-channels", &val)) {
    - if (val >= 1 && val <= 8)
    + if (val >= 2 && val <= 8)
    soc_dai->capture.channels_max = val;
    }

    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-27 10:01    [W:3.563 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site