stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anshuman Gupta <anshuman.gupta@intel.com>
To: Imre Deak <imre.deak@intel.com>
Cc: intel-gfx@lists.freedesktop.org, stable@vger.kernel.org
Subject: Re: [RFC] drm/i915/dp: PPS registers doesn't require AUX power
Date: Wed, 25 Nov 2020 13:16:27 +0530	[thread overview]
Message-ID: <20201125074624.GJ13853@intel.com> (raw)
In-Reply-To: <20201124164406.GG1750458@ideak-desk.fi.intel.com>

On 2020-11-24 at 18:44:06 +0200, Imre Deak wrote:
> On Tue, Nov 24, 2020 at 03:28:47PM +0530, Anshuman Gupta wrote:
> > Platforms with South Display Engine on PCH, doesn't
> > require to get/put the AUX power domain in order to
> > access PPS register because PPS registers are always on
> > with South display on PCH.
> > 
> > Cc: Imre Deak <imre.deak@intel.com>
> > Cc: <stable@vger.kernel.org>
> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> 
> Could you describe the issue the patch is fixing?
This fixes the display glitches causes by race between brightness update thread 
and flip thread.
while brightness is being updated it reads pp_ctrl reg to check whether backlight
is enabled and get/put the AUX power domain, this enables and disable DC Off 
power well(DC3CO) back and forth.
IMO there are two work item for above race needed to be addressed.
1. Don't get AUX power for PPS register access (this patch addressed this).
2. skl_program_plane() should wait for DC3CO exit delay to avoid any race with
   DC3CO disable sequence. (WIP)      
> 
> For accessing PPS registers the AUX power well may not be needed, but
> I'm not sure if this also applies to PPS functionality in general. For
> instance forcing VDD is required for AUX functionality.
AFAIU edp_panel_vdd_on explicitly get AUX power in order to force the VDD.
> 
> In any case we do need a power reference for any register access, so I
> don't think not getting any power reference for PPS is ok.
IMO if PPS register lies in PCH(South Display), it is not correct to take
any power domain which are associated with north display power wells.

This patch is inspired from the comment in pps_lock, quoting that
"See intel_power_sequencer_reset() why we need a power domain reference here."

intel_power_sequencer_reset is not being called for platforms with split PCH,
stating that PPS registers are always on.
https://patchwork.freedesktop.org/patch/259077/ ((v4: (James Ausmus)))

Could you please provide your opinion to use intel_runtime_pm_get()
before accessing PPS register in order to get a wakeref.

Thanks,
Anshuman Gupta.
> 
> --Imre
> 
> > ---
> >  drivers/gpu/drm/i915/display/intel_dp.c | 13 ++++++++-----
> >  1 file changed, 8 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> > index 3896d08c4177..84a2c49e154c 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > @@ -872,8 +872,9 @@ pps_lock(struct intel_dp *intel_dp)
> >  	 * See intel_power_sequencer_reset() why we need
> >  	 * a power domain reference here.
> >  	 */
> > -	wakeref = intel_display_power_get(dev_priv,
> > -					  intel_aux_power_domain(dp_to_dig_port(intel_dp)));
> > +	if (!HAS_PCH_SPLIT(dev_priv))
> > +		wakeref = intel_display_power_get(dev_priv,
> > +						  intel_aux_power_domain(dp_to_dig_port(intel_dp)));
> >  
> >  	mutex_lock(&dev_priv->pps_mutex);
> >  
> > @@ -886,9 +887,11 @@ pps_unlock(struct intel_dp *intel_dp, intel_wakeref_t wakeref)
> >  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> >  
> >  	mutex_unlock(&dev_priv->pps_mutex);
> > -	intel_display_power_put(dev_priv,
> > -				intel_aux_power_domain(dp_to_dig_port(intel_dp)),
> > -				wakeref);
> > +
> > +	if (!HAS_PCH_SPLIT(dev_priv))
> > +		intel_display_power_put(dev_priv,
> > +					intel_aux_power_domain(dp_to_dig_port(intel_dp)),
> > +					wakeref);
> >  	return 0;
> >  }
> >  
> > -- 
> > 2.26.2
> > 

  reply	other threads:[~2020-11-25  8:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-24  9:58 [RFC] drm/i915/dp: PPS registers doesn't require AUX power Anshuman Gupta
2020-11-24 16:44 ` Imre Deak
2020-11-25  7:46   ` Anshuman Gupta [this message]
2020-11-25 16:24     ` Imre Deak
2020-11-26  9:39       ` Anshuman Gupta
2020-11-26 13:52         ` Ville Syrjälä

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=20201125074624.GJ13853@intel.com \
    --to=anshuman.gupta@intel.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).