On Thu, 6 Nov 2014 19:35:51 -0500 Rob Clark robdclark@gmail.com wrote:
On Thu, Nov 6, 2014 at 6:29 PM, Daniel Vetter daniel@ffwll.ch wrote:
That aside I guess I need to elaborate on what makes dpms special in i915, and why there's a real difference between crtc->enable == true && ->active == false and crtc->enable == false in i915. For complex configs we do resource checking (shared dplls) and that's done in the modeset. For a pipe which has been disabled just with dpms we then guarantee that we'll keep these resources reserve and so will always be able to enable the pipe again. If you disable the pipe completely (i.e. set crtc->enable to false) we'll release these resources. E.g. in the i915 share dpll code we have both an active refcount (does the ppl need to be running) and a reference mask (which crtc is referencing this pll, even when the crtc is disabled with dpms).
ahh, ok, "reserved but not enabled" makes a lot more sense.. that was the distinction that I was missing. That probably deserves to be in headerdoc somewhere..
A rename would be nice too; it's very misleading. Though with a move to a boolean DPMS internal state, it should be possible to drop it and just re-alloc all the resources on DPMS on (iow treat both DPMS off and on as mode sets). But that's not something that should block these changes by any means.
Jesse