HDMI and LVDS on mx6

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Jun 27 13:48:27 PDT 2014


On Fri, Jun 27, 2014 at 04:35:58PM -0300, Fabio Estevam wrote:
> On mx6qsabresd we have LVDS and HDMI ports and with kernel 3.15 I had
> to disconnect/connect the HDMI cable in order to get both displays
> working.
> 
> I could workaround this by moving the LDB parent to a clock different
> than pll5.
> 
> Now with 3.16-rc1 the situation is even worse:
> 
> - Boot the kernel with HDMI cable connected: only LVDS is functional
> - Removing the HDMI cable causes LVDS to turn off
> - Connect HDMI cable, then LVDS turns on, but still no HDMI
> 
> I also tried moving the LDB parent to a clock different than pll5.,
> but it does not help in 3.16-rc1.

I don't know.  libdrm's modetest reports (with your patch to add lvds
support to the HB, and changing the ldb clock to the OTG PLL):

Encoders:
id      crtc    type    possible crtcs  possible clones
11      5       TMDS    0x00000003      0xffffffff
13      9       LVDS    0x00000003      0xffffffff

Connectors:
id      encoder status          type    size (mm)       modes   encoders
12      11      connected       HDMI-A  1280x720                21      11
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  1920x1080 50 1920 2448 2492 2640 1080 1084 1089 1125 flags: phsync, pvsync; type: preferred, driver
  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync, pvsync; type: driver
...
  props:
        1 EDID:
                flags: immutable blob
...
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0
14      13      connected       LVDS    0x0             1       13
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  1024x768 60 1024 1064 1124 1344 768 775 785 806 flags: ; type: preferred, driver
  props:
        1 EDID:
                flags: immutable blob
...
CRTCs:
id      fb      pos     size
5       28      (0,0)   (1920x1080)
  1920x1080 50 1920 2448 2492 2640 1080 1084 1089 1125 flags: phsync, pvsync; type: preferred, driver
  props:
9       28      (0,0)   (1024x768)
  1024x768 60 1024 1064 1124 1344 768 775 785 806 flags: ; type: preferred, driver
  props:
...

The extracts from clk_summary:

    pll5_video                            1            1  1188000000          0
       pll5_post_div                      1            1   297000000          0
          pll5_video_div                  1            1   148500000          0
             ipu2_di1_pre_sel             0            0   148500000          0
                ipu2_di1_pre              0            0    74250000          0
                   ipu2_di1_sel           0            0    74250000          0
                      ipu2_di1            0            0    74250000          0
             ipu2_di0_pre_sel             0            0   148500000          0
                ipu2_di0_pre              0            0    49500000          0
                   ipu2_di0_sel           0            0    49500000          0
                      ipu2_di0            0            0    49500000          0
             ipu1_di1_pre_sel             0            0   148500000          0
                ipu1_di1_pre              0            0    49500000          0
             ipu1_di0_pre_sel             1            1   148500000          0
                ipu1_di0_pre              1            1   148500000          0
                   ipu1_di0_sel           1            1   148500000          0
                      ipu1_di0            1            1   148500000          0

    pll3_usb_otg                          5            6   480000000          0
       ldb_di1_sel                        1            1   480000000          0
          ldb_di1_div_3_5                 1            1   137142857          0
             ldb_di1_podf                 1            1    68571429          0
                ldb_di1                   1            1    68571429          0
                   ipu1_di1_sel           1            1    68571429          0
                      ipu1_di1            1            1    68571429          0

So it all looks as it should with your change.

In order to use the modetest program in libdrm, you need to update the
list of modules it looks for to be:

        char *modules[] = { "i915", "radeon", "nouveau", "vmwgfx", "omapdrm", "exynos", "armada-drm", "imx-drm" };

I'm hesitant to share my binary for that because of the numerous
different ARM EABIs, even if I did it probably wouldn't run for you.

The above dumps are after Xorg started up, and then shut down.
Ubuntu doesn't make it easy /not/ to boot into Xorg except by
package removal...

-- 
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.



More information about the linux-arm-kernel mailing list