Customer found HDMI will be blank for about 1~2 second with below warning on UART console.
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00800000
1. What is this warning means?
2. Will this warning cause HDMI display blank for 1~2 second?
HI m.c.
one can look at some workarounds
Set max prio for all Exchanges with IPU1 on AXI bus · wolfgar/utilite@61643d3 · GitHub
also recommended to try latest BSP L3.14.28_1.0.0_iMX6QDLS_BUNDLE
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Customer adapter this suggestion but issue still happend.
The HDMI blank issue still happens. The original patch is for 3.0.35 and the patch file is not exactly the same for yocto 1.6.
Our RD patched the code to yocto 1.6 as introduced in this reference link(https://community.freescale.com/message/528479#528479)
You could see the testing result log and video(1:42~1:44).
Video link:
https://s3.eu-central-1.amazonaws.com/vepdsoftwarepm/SOLARI/Video/HDMIBlank/20150625_174248.avi
Testing result log:
========================================================================================
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00080000
request /sito/rpc/tickets/4619 from 127.0.0.1
Got EOS from element "playbin20".
Execution ended after 1806716334 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
UTC*********
Thu Jun 25 17:44:30 UTC 2015
========================================================================================
hdmi_workround.patch
diff -urN kernel_yct1.6/drivers/video/mxc/mxc_hdmi.c kernel_yct1.6_new/drivers/video/mxc/mxc_hdmi.c
--- kernel_yct1.6/drivers/video/mxc/mxc_hdmi.c 2015-06-25 09:29:33.762810249 +0800
+++ kernel_yct1.6_new/drivers/video/mxc/mxc_hdmi.c 2015-06-24 19:33:21.229216301 +0800
@@ -80,6 +80,8 @@
#define YCBCR422_8BITS 3
#define XVYCC444 4
+static int keepalive=1;
+module_param(keepalive, bool, 0644);
/*
* We follow a flowchart which is in the "Synopsys DesignWare Courses
* HDMI Transmitter Controller User Guide, 1.30a", section 3.1
@@ -1999,6 +2001,7 @@
u8 val;
unsigned long flags;
char event_string[32];
+ int isalive = 0;
char *envp[] = { event_string, NULL };
phy_int_stat = hdmi->latest_intr_stat;
@@ -2027,7 +2030,11 @@
#ifdef CONFIG_MXC_HDMI_CEC
mxc_hdmi_cec_handle(0x80);
#endif
- } else if (!(phy_int_pol & HDMI_PHY_HPD)) {
+ if(!keepalive)
+ hdmi_writeb(HDMI_PHY_HPD, HDMI_PHY_POL0);
+ isalive=1;
+ //} else if (!(phy_int_pol & HDMI_PHY_HPD)) {
+ } else if (!keepalive) {
/* Plugout event */
dev_dbg(&hdmi->pdev->dev, "EVENT=plugout\n");
hdmi_set_cable_state(0);
@@ -2054,16 +2061,21 @@
spin_lock_irqsave(&hdmi->irq_lock, flags);
/* Re-enable HPD interrupts */
- phy_int_mask = hdmi_readb(HDMI_PHY_MASK0);
- phy_int_mask &= ~HDMI_PHY_HPD;
- hdmi_writeb(phy_int_mask, HDMI_PHY_MASK0);
-
+ //phy_int_mask = hdmi_readb(HDMI_PHY_MASK0);
+ //phy_int_mask &= ~HDMI_PHY_HPD;
+ //hdmi_writeb(phy_int_mask, HDMI_PHY_MASK0);
+ if (!(keepalive || isalive)) {
+ phy_int_mask = hdmi_readb(HDMI_PHY_MASK0);
+ phy_int_mask &= ~HDMI_PHY_HPD;
+ hdmi_writeb(phy_int_mask, HDMI_PHY_MASK0);
+
/* Unmute interrupts */
- hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
-
- if (hdmi_readb(HDMI_IH_FC_STAT2) & HDMI_IH_FC_STAT2_OVERFLOW_MASK)
- mxc_hdmi_clear_overflow(hdmi);
-
+ //hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
+ hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
+
+ if (hdmi_readb(HDMI_IH_FC_STAT2) & HDMI_IH_FC_STAT2_OVERFLOW_MASK)
+ mxc_hdmi_clear_overflow(hdmi);
+ }
spin_unlock_irqrestore(&hdmi->irq_lock, flags);
}