[Intel-gfx] [RFC PATCH 09/18] drm/i915: Cloned mode check

Chris Wilson chris at chris-wilson.co.uk
Fri Jun 26 10:14:07 PDT 2015


On Fri, Jun 26, 2015 at 07:08:40PM +0200, Daniel Vetter wrote:
> On Fri, Jun 26, 2015 at 07:21:53PM +0530, Ramalingam C wrote:
> > If crtc is in clone mode, DRRS will be disabled. Because if the both
> > the displays are not sharing the same vrefresh, then userspace
> > activities based on vsync will go for toss.
> > 
> > Clone mode will be rechecked on every restarting Idleness DRRS events.
> > 
> > Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_drrs.c |   36 +++++++++++++++++++++++++++++++++++-
> >  1 file changed, 35 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_drrs.c b/drivers/gpu/drm/i915/intel_drrs.c
> > index e5d8bcd..42b420d 100644
> > --- a/drivers/gpu/drm/i915/intel_drrs.c
> > +++ b/drivers/gpu/drm/i915/intel_drrs.c
> > @@ -16,6 +16,7 @@
> >  
> >  #include <drm/i915_drm.h>
> >  #include <linux/delay.h>
> > +#include <linux/list.h>
> >  
> >  #include "i915_drv.h"
> >  #include "intel_drv.h"
> > @@ -85,6 +86,31 @@ int get_free_drrs_struct_index(struct drm_i915_private *dev_priv)
> >  	return -EBUSY;
> >  }
> >  
> > +/*
> > + * TODO: This is identifying the multiple active crtcs at a time.
> > + * Here we assume that this is clone state and disable DRRS.
> > + * But need to implement a proper method to find the real cloned mode
> > + * state. DRRS need not be disabled incase of multiple crtcs with
> > + * different content.
> > + */
> 
> This is a pretty big hack. Why do you need it? fb tracking should keep any
> display in the high mode as long as there's activity, so as long as
> userspace flips both buffers for both pipes (which is should for cloned
> mode) they'll both be running at max.

It's simpler than than: cloned mode == 1 pipe, 1 framebuffer, 1 pageflip.

Does having a vblank_ref count as activity? There is a large body of
code (like OML_sync_control) that assumes a fixed refresh rate for an
output. (Though OML_sync_control is vague about multiple monitor setups
and ignore mode changed altogether.) 
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list