[Bug 111553] New: Linux 4.10 and newer limit pixel clock to 165 MHz on Haswell-ULT laptop

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Sep 3 22:10:18 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=111553

            Bug ID: 111553
           Summary: Linux 4.10 and newer limit pixel clock to 165 MHz on
                    Haswell-ULT laptop
           Product: DRI
           Version: unspecified
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: not set
          Priority: not set
         Component: DRM/Intel
          Assignee: intel-gfx-bugs at lists.freedesktop.org
          Reporter: public at hansmi.ch
        QA Contact: intel-gfx-bugs at lists.freedesktop.org
                CC: intel-gfx-bugs at lists.freedesktop.org

Created attachment 145258
  --> https://bugs.freedesktop.org/attachment.cgi?id=145258&action=edit
i915 log of attaching Dell U2715H to Linux 4.19

I've recently upgraded a laptop from Debian 9 (Stretch) which used Linux 4.9 to
10 (Buster) which is using Linux 4.19. For about two years I've successfully
used a custom modeline to drive an external monitor at its native
resolution:

  # 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
  Modeline "2560x1440R" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync
-vsync

The upgrade involved switching from X.Org to Wayland with KMS. The native
resolution is no longer offered and the monitor is driven at 2048x1152 instead.
The situation is obviously undesirable. I'm not sure whether I've been driving
the hardware out of specs or whether I'm dealing with a bug.

I managed to identify what appears to be the causing condition in
"drivers/gpu/drm/i915/intel_hdmi.c:hdmi_port_clock_limit" and confirmed that
the native resolution is automatically chosen after applying a minor patch (the
same original code exists in Linux 5.2 so it's not specific to 4.19):

---
--- ./drivers/gpu/drm/i915/intel_hdmi.c.orig    2019-09-03 23:43:19.679250829
+0200
+++ ./drivers/gpu/drm/i915/intel_hdmi.c 2019-09-03 23:43:47.223415491 +0200
@@ -1504,10 +1504,6 @@
                struct intel_connector *connector = hdmi->attached_connector;
                const struct drm_display_info *info =
&connector->base.display_info;

-               if (hdmi->dp_dual_mode.max_tmds_clock)
-                       max_tmds_clock = min(max_tmds_clock,
-                                           
hdmi->dp_dual_mode.max_tmds_clock);
-
                if (info->max_tmds_clock)
                        max_tmds_clock = min(max_tmds_clock,
                                             info->max_tmds_clock);
---

"dp_dual_mode.max_tmds_clock" is set to 165 MHz by
"drm_dp_dual_mode_max_tmds_clock". I'm attaching a kernel log.

The condition I ended up removing was added in commit b1ba124d8e95 by Ville
Syrjälä in May 2016
(<https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b1ba124d8e95>).

Machine information from dmidecode: Toshiba Satellite Z30-A with Intel Core
i7-4500U CPU @ 1.80GHz (Type 0, Family 6, Model 69, Stepping 1).

Monitor information: Dell U2715H with a native resolution of 2560x1440,
connected via a noname HDMI cable. Tests with another cable didn't bring an
improvement.

Kernel: 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64

Excerpt from EDID:
---
…
Detailed mode: Clock 241.500 MHz, 597 mm x 336 mm
               2560 2608 2640 2720 hborder 0
               1440 1443 1448 1481 vborder 0
               +hsync -vsync
               VertFreq: 59 Hz, HorFreq: 88786 Hz
…
Monitor ranges (GTF): 56-86Hz V, 30-113kHz H, max dotclock 300MHz
…
---

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20190903/b52fa56b/attachment.html>


More information about the intel-gfx-bugs mailing list