mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
ASoC: qcom: Fix typo error in HDMI regmap config callbacks
[ Upstream commite681b1a6d7] 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 commit7dfe20ee92("ASoC: qcom: Fix number of HDMI RDMA channels on sc7180"). So reverting the same. Fixes:7cb37b7bd0("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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5dc2ee02fd
commit
9ac3137995
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user