i915 doesn't support some high pixel clock 4k * 60Hz monitors
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OEM Priority Project |
Fix Released
|
Critical
|
jeremyszu | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
jeremyszu | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
linux-oem-5.10 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* Some 4K monitors can not display as maximum resolution from i915 graphic.
* In some 4k monitors, it's support higher pixel clock
The following is the case I have:
Modeline "Mode 0" 533.25 3840 3888 3920 4000 2160 2163 2168 2222 +hsync -vsync
Which will be dropped because the mode rate is greater than i915 maximum data rate.
kernel: [drm:drm_
kernel: [drm:drm_
The BDB version of Intel vBIOS is 237
kernel: i915 0000:00:02.0: [drm:intel_
In old i915 parsing rule (for greater than v216), the common rate is decoded as 16200
kernel: i915 0000:00:02.0: [drm:intel_
Since the Intel updated the parsing rule (for greater then 230). the common rate is up to 540000
kernel: i915 0000:00:02.0: [drm:intel_
540000
There are 4 lanes support.
i915 0000:00:02.0: [drm:intel_
Training passed at link rate = 162000, lane count = 4, at DPRX
In this monitor, the max rate (max_link_clock * max_lanes) is:
162000 * 4 = 648000 # if using old parsing rule (> 210)
540000 * 4 = 2160000 # if using updated parsing rule (> 230)
the maximum mode rate is
DIV_ROUND_
the bpp here is minimum bpp, which is 6 * 3 = 18
...
max bpc: 12
range: (6, 12)
...
thus:
533250 * 18 + 8 - 1 / 8 = 1199813 # this is maximum mode rate of this monitor.
[Fix]
* It needs to use the updated parsing table (intel BDB table version > 230) for supporting high pixel clock monitors.
[Test Plan]
* Steps to reproduce
1. Connect a high pixel clock monitor (533KHz in my case) to i915 graphic which vbios version is v237 (In my case:
ModelName "U2879G6"
VendorName "AOC"
2. Check the display setting, expect a 3840*2160*60Hz option but there is not 3840*2160*60Hz option.
* if upgrade drm debugging level then you will see the modeline be dropped because of high clock.
kernel: [drm:drm_
* after applying the change, the resolution work good.
[Where problems could occur]
* This change considered the backward compatibility, which will check the BDB version before applying different parsing rule.
* From software perspective, the monitor will show nothing if Intel vBIOS using BDB > 230 with undefined dp_max_link_rate field.
* Otherwise, it looks quite ok.
CVE References
Changed in linux (Ubuntu): | |
assignee: | nobody → jeremyszu (os369510) |
tags: | added: oem-priority originate-from-1920881 stella |
summary: |
- i915 doesn't support 4k * 60Hz monitor + i915 doesn't support some high pixel clock 4k * 60Hz monitors |
Changed in oem-priority: | |
assignee: | nobody → jeremyszu (os369510) |
importance: | Undecided → High |
status: | New → In Progress |
importance: | High → Critical |
description: | updated |
description: | updated |
Changed in oem-priority: | |
status: | In Progress → Triaged |
Changed in linux (Ubuntu): | |
status: | Incomplete → Fix Committed |
Changed in linux (Ubuntu Focal): | |
status: | New → Invalid |
Changed in linux-oem-5.10 (Ubuntu): | |
status: | New → Invalid |
Changed in linux-oem-5.10 (Ubuntu Focal): | |
status: | New → Fix Committed |
Changed in oem-priority: | |
status: | Triaged → Fix Released |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1922372
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.