Revert "msm: mdss: hdmi: tear down audio at bootup if already started"

This reverts commit b591582c5b5bf2ddee5e3857629bd7f39b8bdffa
("msm: mdss: hdmi: tear down audio at bootup if already started").
The programming sequence to tear down audio (as implemented on
MSM8994 platform) included directly writing to LPASS registers.
However, on 8996, TZ does not allow access to LPASS registers
from the APPS side.

Change-Id: I19c6c0d5f5019ea78463a2d0fbdbddd92edf7ab0
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
This commit is contained in:
Tatenda Chipeperekwa 2015-12-14 13:49:12 -08:00 committed by David Keitel
parent bf1475554b
commit 36266455ac

View file

@ -61,8 +61,6 @@
#define AUDIO_POLL_SLEEP_US (5 * 1000)
#define AUDIO_POLL_TIMEOUT_US (AUDIO_POLL_SLEEP_US * 1000)
#define LPA_DMA_IDLE_MAX 200
#define IFRAME_CHECKSUM_32(d) \
((d & 0xff) + ((d >> 8) & 0xff) + \
((d >> 16) & 0xff) + ((d >> 24) & 0xff))
@ -5159,69 +5157,6 @@ error:
return rc;
} /* hdmi_tx_get_dt_data */
static void hdmi_tx_audio_tear_down(struct hdmi_tx_ctrl *hdmi_ctrl)
{
struct dss_io_data *io;
u32 audio_pkt_ctrl;
u32 audio_eng_cfg;
if (!hdmi_ctrl) {
DEV_ERR("%s: invalid input\n", __func__);
return;
}
io = &hdmi_ctrl->pdata.io[HDMI_TX_CORE_IO];
if (!io->base) {
DEV_ERR("%s: Core io is not initialized\n", __func__);
return;
}
audio_pkt_ctrl = DSS_REG_R(io, HDMI_AUDIO_PKT_CTRL);
audio_eng_cfg = DSS_REG_R(io, HDMI_AUDIO_CFG);
if ((audio_pkt_ctrl & BIT(0)) || (audio_eng_cfg & BIT(0))) {
u32 lpa_dma, i = 0;
void __iomem *lpa_base = ioremap(LPASS_LPAIF_RDDMA_CTL0, 0xFF);
lpa_dma = readl_relaxed(lpa_base + LPASS_LPAIF_RDDMA_PER_CNT0);
/* Disable audio packet transmission */
DSS_REG_W(io, HDMI_AUDIO_PKT_CTRL,
DSS_REG_R(io, HDMI_AUDIO_PKT_CTRL) & ~BIT(0));
/* Wait for LPA DMA Engine to be idle */
while (i < LPA_DMA_IDLE_MAX) {
u32 val;
/*
* sleep for minimum HW recommended time
* for HW status to update.
*/
msleep(20);
val = readl_relaxed(lpa_base +
LPASS_LPAIF_RDDMA_PER_CNT0);
if (val == lpa_dma)
break;
lpa_dma = val;
i++;
}
DEV_DBG("%s: LPA DMA idle after %d ms\n", __func__, i * 20);
/* Disable audio engine */
DSS_REG_W(io, HDMI_AUDIO_CFG,
DSS_REG_R(io, HDMI_AUDIO_CFG) & ~BIT(0));
/* Disable LPA DMA Engine */
writel_relaxed(readl_relaxed(lpa_base) & ~BIT(0), lpa_base);
iounmap(lpa_base);
}
}
static int hdmi_tx_probe(struct platform_device *pdev)
{
int rc = 0, i;
@ -5338,8 +5273,6 @@ static int hdmi_tx_probe(struct platform_device *pdev)
hdmi_ctrl->pdata.power_data[i].clk_config,
hdmi_ctrl->pdata.power_data[i].num_clk, 1);
}
hdmi_tx_audio_tear_down(hdmi_ctrl);
}
return rc;