diff options
author | Sandor Yu <R01008@freescale.com> | 2012-05-29 16:54:13 +0800 |
---|---|---|
committer | Eric Nelson <eric.nelson@boundarydevices.com> | 2012-08-28 09:48:42 -0700 |
commit | e89625ead277795964aa65e4e7798952c3504d3a (patch) | |
tree | 3b5c4301ed071b62438d20792e187b05510a25ac /sound | |
parent | 2a88442e9274db430e20ffa315cbc777ef3ae51a (diff) |
ENGR00178461-02 HDMI1080p: hotplug cause kernel panic. 10%
It is a warning cause by HDMI driver irq enable count mismatch.
The purpose of maintain HDMI irq count is to disable hdmi_iahb_clk
when HDMI cable plugout.
But hdmi_iahb_clk parent ahb clock is always enabled when system run,
so hdmi_iabh_clk power consumption is very low.
The function clk_get_usecount introduce by irq count maintain
is not safety in SMP.
Remove HDMI irq count in HDMI driver, keep hdmi_iahb_clk always run.
and disable hdmi_iahb_clk and hdmi_isfr_clk when FB Blank.
Signed-off-by: Sandor Yu <R01008@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/imx/imx-hdmi-dma.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/sound/soc/imx/imx-hdmi-dma.c b/sound/soc/imx/imx-hdmi-dma.c index d391267c108b..f0545f6b6ef2 100644 --- a/sound/soc/imx/imx-hdmi-dma.c +++ b/sound/soc/imx/imx-hdmi-dma.c @@ -946,7 +946,6 @@ static void hdmi_dma_irq_enable(struct imx_hdmi_dma_runtime_data *rtd) spin_lock_irqsave(&hdmi_dma_priv->irq_lock, flags); hdmi_dma_clear_irq_status(0xff); - hdmi_irq_enable(hdmi_dma_priv->irq); hdmi_dma_irq_mute(0); hdmi_dma_irq_mask(0); @@ -964,7 +963,6 @@ static void hdmi_dma_irq_disable(struct imx_hdmi_dma_runtime_data *rtd) hdmi_dma_irq_mask(1); hdmi_dma_irq_mute(1); - hdmi_irq_disable(rtd->irq); hdmi_dma_clear_irq_status(0xff); hdmi_mask(1); @@ -1131,9 +1129,6 @@ static int __devinit imx_soc_platform_probe(struct platform_device *pdev) hdmi_dma_init_iec_header(); - /* Initialize IRQ at HDMI core level */ - hdmi_irq_init(); - hdmi_dma_priv->isfr_clk = clk_get(&pdev->dev, "hdmi_isfr_clk"); if (IS_ERR(hdmi_dma_priv->isfr_clk)) { ret = PTR_ERR(hdmi_dma_priv->isfr_clk); |