Bug 1376880 - Xorg + DisplayPort incorrectly generates xrandr RR_Disconnect events on power cycle of connected DP display
Summary: Xorg + DisplayPort incorrectly generates xrandr RR_Disconnect events on power...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11
Version: 24
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: ---
Assignee: X/OpenGL Maintenance List
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-09-16 18:09 UTC by David M. Lloyd
Modified: 2016-09-19 11:28 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Linux 4.6.7-300.fc24.x86_64 #1 SMP Wed Aug 17 18:48:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
Last Closed: 2016-09-19 03:08:27 UTC
Type: Bug


Attachments (Terms of Use)

Description David M. Lloyd 2016-09-16 18:09:04 UTC
Description of problem:

Turning off a display connected via DisplayPort seems to generate events that it probably should not:

  RRNotify event, serial 37, synthetic NO, window 0x4a00001,
      subtype XRROutputPropertyChangeNotifyEvent
      output DP1, property EDID, timestamp 332349944, state Delete

  RRScreenChangeNotify event, serial 37, synthetic NO, window 0x4a00001,
      root 0xd7, timestamp 319493783, config_timestamp 332350217
      size_index 65535, subpixel_order SubPixelUnknown
      rotation RR_Rotate_0
      width 3840, height 1920, mwidth 1016, mheight 508

  RRNotify event, serial 37, synthetic NO, window 0x4a00001,
      subtype XRROutputChangeNotifyEvent
      output DP1, crtc 63, mode 1920x1920 (1920x1920)
      rotation RR_Rotate_0
      connection RR_Disconnected, subpixel_order SubPixelUnknown

...this causes display configurations to be rearranged when DP displays are turned off which does not happen when HDMI or DVI displays are turned off.  Might be that Xorg is hyper-sensitive to DP events.

Version-Release number of selected component (if applicable):

xorg-x11-server-Xorg 1.18.4 (this problem might reside in a different component though)

How reproducible:

100%

Steps to Reproduce:
1. Connect a DP-native display to a DP port on the system.
2. Connect an HDMI or DVI display to another port on the system.
3. Fire up xev or similar event dumping program, perhaps on a remote terminal.
4. Turn off the HDMI or DVI display and observe the (lack of) fired events.
5. Turn off the DP display and observe the RR_Disconnected and related events.

Actual results:

DP fires RR_Disconnected events on power cycle even if the monitor remains connected.

Expected results:

There does not seem to be an appropriate event for this situation; probably no event should be fired at all.

Additional info:

This is occurring for me with Intel HD Graphics 4600 integrated video on an Intel motherboard and Eizo monitors.  Some unscientific Internet searches suggest that this probably isn't driver- or display-related though; my gut feeling is that there are some kind of new DP protocol events that are not present with HDMI/DVI and they are just handled in the wrong way.

I don't know what component handles the knowledge and interfacing that bridges Xrandr and the DisplayPort logic of the driver; I assume it's not the library itself but something inside the server, but feel free to fix the component if I guessed wrongly.

I've set severity to "low" because at the end of the day, this is mostly an annoyance, not a real disruptive problem, but it would definitely be nice to get it fixed.

Comment 1 Dave Airlie 2016-09-19 03:08:27 UTC
this is just the way displayport hardware works. When you power off the monitor, it disappears from the link, unlike say VGA or DVI.

So nothing the OS can do about it.

Comment 2 David M. Lloyd 2016-09-19 11:28:15 UTC
Wow, bummer.  Well, thanks for looking at any rate.


Note You need to log in before you can comment on or make changes to this bug.