DVI monitors show up as the RX_SENSE bits in the
HDMI_PHY_STAT0 register, ie F0 so we really want to check
against F2 to support both HDMI and DVI.

Signed-off-by: Robert Winkler <robert.wink...@boundarydevices.com>
---
 arch/arm/imx-common/cmd_hdmidet.c             | 3 +--
 arch/arm/include/asm/arch-mx6/mxc_hdmi.h      | 3 +++
 board/boundary/nitrogen6x/nitrogen6x.c        | 2 +-
 board/freescale/mx6qsabrelite/mx6qsabrelite.c | 2 +-
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/arm/imx-common/cmd_hdmidet.c 
b/arch/arm/imx-common/cmd_hdmidet.c
index 794bf50..ce0b26e 100644
--- a/arch/arm/imx-common/cmd_hdmidet.c
+++ b/arch/arm/imx-common/cmd_hdmidet.c
@@ -27,8 +27,7 @@
 static int do_hdmidet(cmd_tbl_t *cmdtp, int flag, int argc, char * const 
argv[])
 {
        struct hdmi_regs *hdmi  = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
-       u8 reg = readb(&hdmi->phy_stat0) & HDMI_PHY_HPD;
-       return (reg&HDMI_PHY_HPD) ? 0 : 1;
+       return (readb(&hdmi->phy_stat0) & HDMI_DVI_STAT) ? 0 : 1;
 }
 
 U_BOOT_CMD(hdmidet, 1, 1, do_hdmidet,
diff --git a/arch/arm/include/asm/arch-mx6/mxc_hdmi.h 
b/arch/arm/include/asm/arch-mx6/mxc_hdmi.h
index 9dccb3f..1b55b05 100644
--- a/arch/arm/include/asm/arch-mx6/mxc_hdmi.h
+++ b/arch/arm/include/asm/arch-mx6/mxc_hdmi.h
@@ -896,6 +896,9 @@ enum {
        HDMI_PHY_HPD = 0x02,
        HDMI_PHY_TX_PHY_LOCK = 0x01,
 
+/* Convenience macro RX_SENSE | HPD */
+       HDMI_DVI_STAT = 0xF2,
+
 /* PHY_I2CM_SLAVE_ADDR field values */
        HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69,
        HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49,
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c 
b/board/boundary/nitrogen6x/nitrogen6x.c
index 8f0f9b8..bb09a6a 100644
--- a/board/boundary/nitrogen6x/nitrogen6x.c
+++ b/board/boundary/nitrogen6x/nitrogen6x.c
@@ -477,7 +477,7 @@ struct display_info_t {
 static int detect_hdmi(struct display_info_t const *dev)
 {
        struct hdmi_regs *hdmi  = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
-       return readb(&hdmi->phy_stat0) & HDMI_PHY_HPD;
+       return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
 }
 
 static void enable_hdmi(struct display_info_t const *dev)
diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c 
b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
index 862bc30..559b082 100644
--- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c
+++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c
@@ -449,7 +449,7 @@ struct display_info_t {
 static int detect_hdmi(struct display_info_t const *dev)
 {
        struct hdmi_regs *hdmi  = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
-       return readb(&hdmi->phy_stat0) & HDMI_PHY_HPD;
+       return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
 }
 
 static void enable_hdmi(struct display_info_t const *dev)
-- 
1.8.3.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to