All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 0/6] Enabling DRRS support in the kernel
Date: Thu, 5 Dec 2013 07:52:42 -0800	[thread overview]
Message-ID: <20131205075242.78b4e6df@jbarnes-desktop> (raw)
In-Reply-To: <20131128131409.GI27344@phenom.ffwll.local>

On Thu, 28 Nov 2013 14:14:09 +0100
Daniel Vetter <daniel@ffwll.ch> wrote:
> > 	[Vandana/Pradeep]	This patch series is for seamless DRRS
> > 	support and has to be a separate path from mode set as we just
> > 	toggle the PIPE_CONF_RR_SWTICH for seamless RR transition without
> > 	flicker. Complete modeset using setCrtc will result in partial
> > 	blanking or flicker. We are not implementing fast boot as part of
> > 	this series.  Most eDP panels today which support multiple refresh
> > 	rates, support seamless DRRS. This means that hardware capability
> > 	is made use of by toggling a bit in pipe config to switch between
> > 	refresh rates on the fly. The patch series is aimed to take
> > 	advantage of this capability to switch refresh rates based on
> > 	idleness or video playback requirement. Hence, we chose the
> > 	connector attribute/ set property path.  Also in order to support
> > 	the Media refresh rates of 50/48 we thought it incorrect to
> > 	populate those modes in probed_mode list as those values are not
> > 	from the EDID. So in order for User space to know the media
> > 	refresh rates supported we have exposed a set_property interface
> > 	which makes User space aware of these media refresh rates. Also we
> > 	do not intend to do a complete mode set on media use cases in
> > 	which case we think using setCrtc is not needed. Using setCrtc
> > 	will invariably result in intermittant blanking or flicker which
> > 	cannot be avoided, and gives undesirable effect during playback.
> > 	Seamless DRRS doesn't need a complete modeset and hence no flicker
> > 	or temporary blanking. Changing the toggle RR bit in PIPE_CONF is
> > 	faster. Also since BDW has only single M/N/TU register the current
> > 	code takes care of it easily. Kindly let us know your opinion.
> > 	Since Seamless DRRS for eDP is separate path from modeset we can
> > 	keep the connector property attribute as it is.
> 
> First the technical stuff:
> 
> - Adding the additional modes to the mode list is imo totally ok and as
>   the design intents. We are already adding other modes from the vbt here
>   if those are available. The only restriction is that the kernel may not
>   add modes which don't work. But as long as the vbt tells us that 48Hz
>   will work we can (and imo should) use it.
> 
> - Second changing the frequency changes the refresh rate. Atm both our
>   userspace and the kernel support code assume that this can only be done
>   through a SetCrtc call. So adjusting the dotclock is actually the right
>   interface and we don't need any additional property.
> 
> Now the more political stuff:
> 
> - We have the long-term goal of solid fastboot support. We've the designed
>   we've picked that actually means 95% effort to get flicker-free SetCrtc
>   going and 5% actual code for fastboot. We're not there yet, there's only
>   a preview available which is disabled by default and uses a few hacks.
>   But generally all features that are relevant need to use the new
>   infrastructure and help move things forward.
> 
> - Upstream has a time horizon of 5-10 years for the kernel/userspace
>   interface. Which means quick hacks are not allowed. And in my opinion
>   your property is a quick hack, which nicely simplified the
>   implementation.
> 
> So in short I know that my request extends the scope of your patches. But
> upstream also imposes differing constraints than a product tree.

It should be possible to still merge the automatic, in-kernel only DRRS
bits though, right?  Then work on making dotclock/refresh changes from
mode sets flicker free (shouldn't be a massive amount of work).

-- 
Jesse Barnes, Intel Open Source Technology Center

      reply	other threads:[~2013-12-05 15:51 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-19  6:06 [PATCH 0/6] Enabling DRRS support in the kernel Vandana Kannan
2013-11-19  6:06 ` [PATCH 1/6] drm/i915: Adding VBT fields to support eDP DRRS feature Vandana Kannan
2013-11-19  6:07 ` [PATCH 2/6] drm/i915: Parse EDID probed modes for DRRS support Vandana Kannan
2013-11-19  6:07 ` [PATCH 3/6] drm/i915: Add support for DRRS set property to switch RR Vandana Kannan
2013-11-19  6:07 ` [PATCH 4/6] drm/i915: Idleness detection for DRRS Vandana Kannan
2013-11-19  6:07 ` [PATCH 5/6] drm/i915: Support to read DMRRS field from VBT structure Vandana Kannan
2013-11-19  6:07 ` [PATCH 6/6] drm/i915: Adding support for DMRRS for media playback Vandana Kannan
2013-11-26 18:26 ` [PATCH 0/6] Enabling DRRS support in the kernel Daniel Vetter
2013-11-28 10:22   ` Kannan, Vandana
2013-11-28 13:14     ` Daniel Vetter
2013-12-05 15:52       ` Jesse Barnes [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131205075242.78b4e6df@jbarnes-desktop \
    --to=jbarnes@virtuousgeek.org \
    --cc=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.