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:
parent
bf1475554b
commit
36266455ac
1 changed files with 0 additions and 67 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue