diff options
author | Tatenda Chipeperekwa <tatendac@codeaurora.org> | 2015-12-14 13:49:12 -0800 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:17:55 -0700 |
commit | 36266455accc5e31addcccfc9f861dbd6d297075 (patch) | |
tree | 1ec3368b6112333f67c3b29470578b2838ac2471 | |
parent | bf1475554b50f12429c3a0ee179a51c47f5d1dce (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.c | 67 |
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; |