I use my DCE5 Barts (HD69xx) with AV-receiver Onkyo TX-SR605 and one of the following displays:
1) TV Sony Bravia KDL-52X3500
2) Projector Epson EH-TW6100
My problem is that when I change display connected to the Onkyo's output EDID changes, but drm doesn't call mode_set as long as I use the same resolution.
To force drm to call mode_set I've to change resolution (xrandr --output HDMI-0 --mode X) and then swtich back to the mode I want.
While the display seems to be working fine without that mode_set call, the audio engine doesn't. As part of the modesetting handler we read ELD-related info from EDID and write it to the audio engine of the GPU. Without this happening I can't play correctly audio (because also sees info about previous device, not the current one).
I think mode_set should be called every time EDID changes. Is that right?
In case someone's curious:
1) EDID with Onkyo + Sony TV:
2) EDID with Onkyo + Epson projector:
Are you unplugging the cable from the card when you switch the monitors? That should generate a hotplug event which will trigger the graphics stack to reprobe the displays. If you are just changing the monitor connected to the receiver, it sounds like the receiver never sends a hotplug event to the card. As such the card has no way of knowing that the EDID has changed.
I do! I unplug HDMI that is between notebook and Onkyo and then start switching operation. I also get a notification about changed display configuration in KDE, so I'm sure events are generate correctly.