On Thu, Nov 6, 2014 at 11:35 PM, Sean Paul seanpaul@chromium.org wrote:
Proposal: Only shut down anything (and then the hole output pipe with all cloned outputs) when all connector's dpms property is set to off. And enable it again as soon as one property goes to on.
Well, it isn't quite the behavior I would expect.. at least not if atomic ioctl has a "preserve properties not explicitly set" mode. I would expect one of the displays to turn off. Or at least go black (but preferably off..)
Maybe we could just fail the atomic check in this case?
Oh, I missed this bit a bit. We can't disable the output on the first dpms off for a connector, since if there's 1 connector left on stuff like vblank waits or page flips need to keep working. And maybe there's crazy userspace out there which needs that to not die in a racecondition. But keeping the screen running for a bit longer will not be noticeable since all compositors always do dpms on all outputs anyway. So from a "what does the user see" pov disabling when the first or last cloned connector get dpms off set doesn't matter, but from an userspace pov there's a difference.
All this only matters for cloned configs anyway only, which is about i915 for gen2, roughly. Well Ville implemented cloning for some more recent stuff too. -Daniel