lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 214/663] ASoC: qcom: Fix typo error in HDMI regmap config callbacks
    Date
    From: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>

    [ Upstream commit e681b1a6d706b4e54c3847bb822531b4660234f3 ]

    Had a typo in lpass platform driver that resulted in crash
    during suspend/resume with an HDMI dongle connected.

    The regmap read/write/volatile regesters validation callbacks in lpass-cpu
    were using MI2S rdma_channels count instead of hdmi_rdma_channels.

    This typo error causing to read registers from the regmap beyond the length
    of the mapping created by ioremap().

    This fix avoids the need for reducing number hdmi_rdma_channels,
    which is done in
    commit 7dfe20ee92f6 ("ASoC: qcom: Fix number of HDMI RDMA channels on sc7180").
    So reverting the same.

    Fixes: 7cb37b7bd0d3c ("ASoC: qcom: Add support for lpass hdmi driver")
    Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
    Link: https://lore.kernel.org/r/20210202062727.22469-1-srivasam@codeaurora.org
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Tested-by: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/qcom/lpass-cpu.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c
    index 6815f32b67b40..a33dbd6de8a06 100644
    --- a/sound/soc/qcom/lpass-cpu.c
    +++ b/sound/soc/qcom/lpass-cpu.c
    @@ -594,7 +594,7 @@ static bool lpass_hdmi_regmap_writeable(struct device *dev, unsigned int reg)
    return true;
    }

    - for (i = 0; i < v->rdma_channels; ++i) {
    + for (i = 0; i < v->hdmi_rdma_channels; ++i) {
    if (reg == LPAIF_HDMI_RDMACTL_REG(v, i))
    return true;
    if (reg == LPAIF_HDMI_RDMABASE_REG(v, i))
    @@ -640,7 +640,7 @@ static bool lpass_hdmi_regmap_readable(struct device *dev, unsigned int reg)
    if (reg == LPASS_HDMITX_APP_IRQSTAT_REG(v))
    return true;

    - for (i = 0; i < v->rdma_channels; ++i) {
    + for (i = 0; i < v->hdmi_rdma_channels; ++i) {
    if (reg == LPAIF_HDMI_RDMACTL_REG(v, i))
    return true;
    if (reg == LPAIF_HDMI_RDMABASE_REG(v, i))
    @@ -667,7 +667,7 @@ static bool lpass_hdmi_regmap_volatile(struct device *dev, unsigned int reg)
    if (reg == LPASS_HDMI_TX_LEGACY_ADDR(v))
    return true;

    - for (i = 0; i < v->rdma_channels; ++i) {
    + for (i = 0; i < v->hdmi_rdma_channels; ++i) {
    if (reg == LPAIF_HDMI_RDMACURR_REG(v, i))
    return true;
    }
    @@ -817,7 +817,7 @@ int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev)
    }

    lpass_hdmi_regmap_config.max_register = LPAIF_HDMI_RDMAPER_REG(variant,
    - variant->hdmi_rdma_channels);
    + variant->hdmi_rdma_channels - 1);
    drvdata->hdmiif_map = devm_regmap_init_mmio(dev, drvdata->hdmiif,
    &lpass_hdmi_regmap_config);
    if (IS_ERR(drvdata->hdmiif_map)) {
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-03-02 02:10    [W:4.042 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site