[Intel-gfx] Tracing a "drm_mode_prune_invalid"
Adam Chasen
adam at chasen.name
Wed May 12 16:31:14 UTC 2021
Hoping I can (help) craft a patch to address what appears to be an issue with overaggressive mode pruning. I am having trouble with rejection of a Dual-DVI compatible mode out of the DisplayPort specific to i915 in Fedora 33. It seems that drm_mode_validate_pipeline is the wall I hit when digging for why this mode is pruned. Requesting additional troubleshooting guidance.
```
kernel: [drm:drm_mode_debug_printmodeline [drm]] Modeline "2560x1600": 60 268000 2560 2608 2640 2720 1600 1603 1609 1646 0x48 0x9
kernel: [drm:drm_mode_prune_invalid [drm]] Not using 2560x1600 mode: CLOCK_HIGH
```
This is an HP LP3065 Dual-DVI monitor connected via DisplayPort with a BizLink "active" adapter (recommended by HP and DELL for their Dual-DVI monitors).
The adapter appears to be "transparent" to the system (unlike some adapters reporting similar issues). I2C probes and EDIDs all appear to be direct from the monitor. Though, there is a mention of a m2DVIa "branch device" in the `i915_display_info` output.
The pruned mode works with X-Org with manually setting the mode via `xrandr` on Xorg (my current fallback setup):
`xrandr --newmode "2560x1600R" 268.50 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync`
My setup is a bit different than some older reported "dual mode" issues (i.e. passive adapters), so I do not believe it is the "faulty dual mode detection" (i.e. https://github.com/hansmi/fake-dp-dual-mode). I was thinking it could be related by some "state" of the port detection limiting output to 165MHz clock.
Thanks,
Adam
with `echo 0x6 > /sys/module/drm/parameters/debug`
```
kernel: [drm:drm_add_display_info [drm]] Supported Monitor Refresh rate range is 0 Hz - 0 Hz
kernel: [drm:drm_add_display_info [drm]] non_desktop set to 0
kernel: i915 0000:00:02.0: [drm:intel_dp_set_edid [i915]] [CONNECTOR:95:DP-1] DFP max bpc 8, max dotclock 0, TMDS clock 25000-165000
kernel: i915 0000:00:02.0: [drm:intel_dp_set_edid [i915]] [CONNECTOR:95:DP-1] YCbCr 4:2:0 allowed? no, YCbCr 4:4:4->4:2:0 conversion? no
kernel: [drm:drm_dp_get_edid_quirks [drm_kms_helper]] DP sink: EDID mfg 22-f0 prod-ID 90-26 quirks: 0x0000
kernel: [drm:drm_add_display_info [drm]] Supported Monitor Refresh rate range is 0 Hz - 0 Hz
kernel: [drm:drm_add_display_info [drm]] non_desktop set to 0
kernel: [drm:drm_add_edid_modes [drm]] ELD: no CEA Extension found
kernel: [drm:drm_add_display_info [drm]] Supported Monitor Refresh rate range is 0 Hz - 0 Hz
kernel: [drm:drm_add_display_info [drm]] non_desktop set to 0
**kernel: [drm:drm_mode_debug_printmodeline [drm]] Modeline "2560x1600": 60 268000 2560 2608 2640 2720 1600 1603 1609 1646 0x48 0x9**
**kernel: [drm:drm_mode_prune_invalid [drm]] Not using 2560x1600 mode: CLOCK_HIGH**
kernel: [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:95:DP-1] probed modes :
kernel: [drm:drm_mode_debug_printmodeline [drm]] Modeline "1280x800": 60 71000 1280 1328 1360 1440 800 803 809 823 0x40 0x9
kernel: [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:106:HDMI-A-1]
```
./edid-decode /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1/edid
```
edid-decode (hex):
00 ff ff ff ff ff ff 00 22 f0 90 26 01 01 01 01
16 14 01 03 80 40 28 78 2a 8f 95 ad 4f 32 b2 25
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 b0 68 00 a0 a0 40 2e 60 30 20
36 00 81 90 21 00 00 1a bc 1b 00 a0 50 20 17 30
30 20 36 00 81 90 21 00 00 1a 00 00 00 fc 00 48
50 20 4c 50 33 30 36 35 0a 20 20 20 00 00 00 ff
00 43 4e 34 30 32 32 30 51 39 43 0a 20 20 00 77
----------------
Block 0, Base EDID:
...
Detailed Timing Descriptors:
DTD 1: 2560x1600 59.860 Hz 8:5 98.529 kHz 268.000 MHz (641 mm x 400 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 6 Vback 37 Vpol N
DTD 2: 1280x800 59.910 Hz 8:5 49.306 kHz 71.000 MHz (641 mm x 400 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 6 Vback 14 Vpol N
Display Product Name: 'HP LP3065'
...
```
/sys/kernel/debug/dri/0/i915_display_info
```
CRTC info
---------
[CRTC:51:pipe A]:
uapi: enable=yes, active=yes, mode="1280x800": 60 71000 1280 1328 1360 1440 800 803 809 823 0x40 0x9
hw: active=yes, adjusted_mode="1280x800": 60 71000 1280 1328 1360 1440 800 803 809 823 0x40 0x9
pipe src size=1280x800, dither=no, bpp=24
num_scalers=2, scaler_users=0 scaler_id=-1, scalers[0]: use=no, mode=0, scalers[1]: use=no, mode=0
[ENCODER:94:DDI C/PHY C]: connectors:
[CONNECTOR:95:DP-1]
[PLANE:31:plane 1A]: type=PRI
uapi: [FB:133] XR24 little-endian (0x34325258),0x100000000000001,1280x800, visible=visible, src=1280.000000x800.000000+0.000000+0.000000, dst=1280x800+0+0, rotation=0 (0x00000001)
hw: [FB:133] XR24 little-endian (0x34325258),0x100000000000001,1280x800, visible=yes, src=1280.000000x800.000000+0.000000+0.000000, dst=1280x800+0+0, rotation=0 (0x00000001)
[PLANE:39:plane 2A]: type=OVL
uapi: [FB:0] n/a,0x0,0x0, visible=hidden, src=0.000000x0.000000+0.000000+0.000000, dst=0x0+0+0, rotation=0 (0x00000001)
[PLANE:47:cursor A]: type=CUR
uapi: [FB:0] n/a,0x0,0x0, visible=hidden, src=0.000000x0.000000+0.000000+0.000000, dst=0x0+0+0, rotation=0 (0x00000001)
underrun reporting: cpu=yes pch=yes
...
Connector info
--------------
[CONNECTOR:95:DP-1]: status: connected
physical dimensions: 640x400mm
subpixel order: Unknown
CEA rev: 0
DPCD rev: 11
audio support: no
DP branch device present: yes
Type: DVI
ID: m2DVIa
HW: 0.1
SW: 2.0
HDCP version: HDCP1.4
modes:
"1280x800": 60 71000 1280 1328 1360 1440 800 803 809 823 0x40 0x9
[CONNECTOR:106:HDMI-A-1]: status: disconnected
...
```
More information about the Intel-gfx
mailing list