summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatenda Chipeperekwa <tatendac@codeaurora.org>2015-12-14 13:49:12 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:17:55 -0700
commit36266455accc5e31addcccfc9f861dbd6d297075 (patch)
tree1ec3368b6112333f67c3b29470578b2838ac2471
parentbf1475554b50f12429c3a0ee179a51c47f5d1dce (diff)
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>
-rw-r--r--drivers/video/fbdev/msm/mdss_hdmi_tx.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/drivers/video/fbdev/msm/mdss_hdmi_tx.c b/drivers/video/fbdev/msm/mdss_hdmi_tx.c
index 30d253b117a9..5a7aeacee6d8 100644
--- a/drivers/video/fbdev/msm/mdss_hdmi_tx.c
+++ b/drivers/video/fbdev/msm/mdss_hdmi_tx.c
@@ -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;