All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
@ 2013-07-23 22:07 Robert Winkler
  2013-07-23 22:33 ` Otavio Salvador
  2013-07-27  8:53 ` Stefano Babic
  0 siblings, 2 replies; 8+ messages in thread
From: Robert Winkler @ 2013-07-23 22:07 UTC (permalink / raw)
  To: u-boot

A little background is probably appropriate for this patch.

Since "the beginning" of usage of the SABRE Lite and Nitrogen6x
boards, DVI detection has been somewhat broken.

Some (most) DVI monitors don't produce the "HPD" bit in
the PHY_STAT0 register, but do show proper toggling of the
RX_SENSE0..3 bits.

Creating a new the bit-mask to include all five bits and
modifying the 'hdmidet' command and internal detection
routines allows these monitors to function properly in U-Boot.

A related patch to our kernels allows things to work under
Linux:
        https://github.com/boundarydevices/linux-imx6/commit/7d8752905c118af9063738a533227de0b2f6ecd4

Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
---
Change from v1:
- Use Eric Nelson's description as commit message

 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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-23 22:07 [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors Robert Winkler
@ 2013-07-23 22:33 ` Otavio Salvador
  2013-07-23 23:15   ` Robert Winkler
  2013-07-27  8:53 ` Stefano Babic
  1 sibling, 1 reply; 8+ messages in thread
From: Otavio Salvador @ 2013-07-23 22:33 UTC (permalink / raw)
  To: u-boot

On Tue, Jul 23, 2013 at 7:07 PM, Robert Winkler
<robert.winkler@boundarydevices.com> wrote:
> --- 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;
>  }

Does this depends on other boards to do similar commit in their kernel trees?

--
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-23 22:33 ` Otavio Salvador
@ 2013-07-23 23:15   ` Robert Winkler
  2013-07-23 23:17     ` Fabio Estevam
  2013-07-24 11:09     ` Stefano Babic
  0 siblings, 2 replies; 8+ messages in thread
From: Robert Winkler @ 2013-07-23 23:15 UTC (permalink / raw)
  To: u-boot

On Tue, Jul 23, 2013 at 3:33 PM, Otavio Salvador <otavio@ossystems.com.br>wrote:

> On Tue, Jul 23, 2013 at 7:07 PM, Robert Winkler
> <robert.winkler@boundarydevices.com> wrote:
> > --- 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;
> >  }
>
> Does this depends on other boards to do similar commit in their kernel
> trees?
>

This change only affects people who enable and use the hdmidet command.
This has nothing to do with the kernel.
The kernel patch mentioned in the commit message just fixes the same
problem for the kernel.

Incidentally, I just grepped for CONFIG_CMD_HDMIDETECT and I don't see it
documented anywhere.  It should probably be added to the README



>
> --
> Otavio Salvador                             O.S. Systems
> http://www.ossystems.com.br        http://projetos.ossystems.com.br
> Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750
>

Robert

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-23 23:15   ` Robert Winkler
@ 2013-07-23 23:17     ` Fabio Estevam
  2013-07-24 11:09     ` Stefano Babic
  1 sibling, 0 replies; 8+ messages in thread
From: Fabio Estevam @ 2013-07-23 23:17 UTC (permalink / raw)
  To: u-boot

On Tue, Jul 23, 2013 at 8:15 PM, Robert Winkler
<robert.winkler@boundarydevices.com> wrote:

> Incidentally, I just grepped for CONFIG_CMD_HDMIDETECT and I don't see it
> documented anywhere.  It should probably be added to the README

Yes, looks like a good idea.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-23 23:15   ` Robert Winkler
  2013-07-23 23:17     ` Fabio Estevam
@ 2013-07-24 11:09     ` Stefano Babic
  2013-07-24 19:59       ` Robert Winkler
  1 sibling, 1 reply; 8+ messages in thread
From: Stefano Babic @ 2013-07-24 11:09 UTC (permalink / raw)
  To: u-boot

Hi Robert,

On 24/07/2013 01:15, Robert Winkler wrote:

> Incidentally, I just grepped for CONFIG_CMD_HDMIDETECT and I don't see
> it documented anywhere.  It should probably be added to the README

Right - but let's do it in a separate patch. For this one:

Acked-by: Stefano Babic <sbabic@denx.de>

Regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-24 11:09     ` Stefano Babic
@ 2013-07-24 19:59       ` Robert Winkler
  2013-07-24 20:10         ` Otavio Salvador
  0 siblings, 1 reply; 8+ messages in thread
From: Robert Winkler @ 2013-07-24 19:59 UTC (permalink / raw)
  To: u-boot

Stefano,


On Wed, Jul 24, 2013 at 4:09 AM, Stefano Babic <sbabic@denx.de> wrote:

> Hi Robert,
>
> On 24/07/2013 01:15, Robert Winkler wrote:
>
> > Incidentally, I just grepped for CONFIG_CMD_HDMIDETECT and I don't see
> > it documented anywhere.  It should probably be added to the README
>
> Right - but let's do it in a separate patch.


Both the bmode command and the hdmidet command are undocumented and both
are imx specific.  Bmode is used for imx6 and 53 currently so I know those
are at least supported which is what Troy's original commit message said.
Eric tells me that hdmidet is imx6 specific.

So the documentation shuld probably go both in doc/README.imx5 and imx6
files?

Here's a rough draft of what I'd actually say

CONFIG_CMD_HDMIDETECT
Add the 'hdmidet' command; returns true if an HDMI monitor is detected.

CONFIG_CMD_BMODE
Add the 'bmode' (bootmode) command for forcing a boot from other media.
This is useful for forcing the ROM's usb downloader to activate upon a
watchdog reset
which is nice when iterating on U-Boot.  Using the reset button or running
bmode normal
will set it back to normal






> For this one:
>
> Acked-by: Stefano Babic <sbabic@denx.de>
>
> Regards,
> Stefano
>
> --
> =====================================================================
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
> =====================================================================
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-24 19:59       ` Robert Winkler
@ 2013-07-24 20:10         ` Otavio Salvador
  0 siblings, 0 replies; 8+ messages in thread
From: Otavio Salvador @ 2013-07-24 20:10 UTC (permalink / raw)
  To: u-boot

On Wed, Jul 24, 2013 at 4:59 PM, Robert Winkler
<robert.winkler@boundarydevices.com> wrote:
> Stefano,
>
>
> On Wed, Jul 24, 2013 at 4:09 AM, Stefano Babic <sbabic@denx.de> wrote:
>>
>> Hi Robert,
>>
>> On 24/07/2013 01:15, Robert Winkler wrote:
>>
>> > Incidentally, I just grepped for CONFIG_CMD_HDMIDETECT and I don't see
>> > it documented anywhere.  It should probably be added to the README
>>
>> Right - but let's do it in a separate patch.
>
>
> Both the bmode command and the hdmidet command are undocumented and both are
> imx specific.  Bmode is used for imx6 and 53 currently so I know those are
> at least supported which is what Troy's original commit message said.
> Eric tells me that hdmidet is imx6 specific.
>
> So the documentation shuld probably go both in doc/README.imx5 and imx6
> files?
>
> Here's a rough draft of what I'd actually say
>
> CONFIG_CMD_HDMIDETECT
> Add the 'hdmidet' command; returns true if an HDMI monitor is detected.
>
> CONFIG_CMD_BMODE
> Add the 'bmode' (bootmode) command for forcing a boot from other media.
> This is useful for forcing the ROM's usb downloader to activate upon a
> watchdog reset
> which is nice when iterating on U-Boot.  Using the reset button or running
> bmode normal
> will set it back to normal

I think it should be together with commands and in  the documentation
you could say it is specific.

--
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
  2013-07-23 22:07 [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors Robert Winkler
  2013-07-23 22:33 ` Otavio Salvador
@ 2013-07-27  8:53 ` Stefano Babic
  1 sibling, 0 replies; 8+ messages in thread
From: Stefano Babic @ 2013-07-27  8:53 UTC (permalink / raw)
  To: u-boot

On 24/07/2013 00:07, Robert Winkler wrote:
> A little background is probably appropriate for this patch.
> 
> Since "the beginning" of usage of the SABRE Lite and Nitrogen6x
> boards, DVI detection has been somewhat broken.
> 
> Some (most) DVI monitors don't produce the "HPD" bit in
> the PHY_STAT0 register, but do show proper toggling of the
> RX_SENSE0..3 bits.
> 
> Creating a new the bit-mask to include all five bits and
> modifying the 'hdmidet' command and internal detection
> routines allows these monitors to function properly in U-Boot.
> 
> A related patch to our kernels allows things to work under
> Linux:
>         https://github.com/boundarydevices/linux-imx6/commit/7d8752905c118af9063738a533227de0b2f6ecd4
> 
> Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
> ---

Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic


-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-07-27  8:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-23 22:07 [U-Boot] [PATCH v2] imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors Robert Winkler
2013-07-23 22:33 ` Otavio Salvador
2013-07-23 23:15   ` Robert Winkler
2013-07-23 23:17     ` Fabio Estevam
2013-07-24 11:09     ` Stefano Babic
2013-07-24 19:59       ` Robert Winkler
2013-07-24 20:10         ` Otavio Salvador
2013-07-27  8:53 ` Stefano Babic

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.