public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: "Jindal, Sonika" <sonika.jindal@intel.com>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 3/7] drm/i915: PSR: deprecate link_standby support for core platforms.
Date: Mon, 02 Mar 2015 17:11:37 +0530	[thread overview]
Message-ID: <54F44C71.9070300@intel.com> (raw)
In-Reply-To: <1425086767-1016-3-git-send-email-rodrigo.vivi@intel.com>



On 2/28/2015 6:56 AM, Rodrigo Vivi wrote:
> On Haswell and Broadwell with link in standby when exit event happens
> between vblank and VSC packet, PSR exit on panel but DPA transmitter
> still sends black pixel. hen this condition hits, panel will intermittently
> display black frame.
>
> The known W/A for this case involve the of single_frame update
> that isn't supported on Haswell and to be supported on Broadwell
> 3 other workarounds would be required. So it is better and safe to
> just deprecate link_standby for now.
>
> Also, link fully off saves more power than link_standby and afwk
> no OEM is requesting link standby on VBT. There is no reason for that.
>
> For Skylake let's just consider it behaves like Broadwell until
> we prove otherwise.
>
Hmm, on SKL I am able to read the sink crc only when I keep this 
link_standby true. Not sure if we'l have to pull it back or need to look 
for another solution.
> Reference: HSD: bdwgfx/1912559
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_debugfs.c |  3 ---
>   drivers/gpu/drm/i915/i915_drv.h     |  1 -
>   drivers/gpu/drm/i915/intel_psr.c    | 25 ++++++++-----------------
>   3 files changed, 8 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 94b3984..756bf4e 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2281,9 +2281,6 @@ static int i915_edp_psr_status(struct seq_file *m, void *data)
>   		}
>   	seq_puts(m, "\n");
>
> -	seq_printf(m, "Link standby: %s\n",
> -		   yesno((bool)dev_priv->psr.link_standby));
> -
>   	/* CHV PSR has no kind of performance counter */
>   	if (HAS_PSR(dev) && HAS_DDI(dev)) {
>   		psrperf = I915_READ(EDP_PSR_PERF_CNT(dev)) &
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a1dd8bc..dfd044f 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -863,7 +863,6 @@ struct i915_psr {
>   	bool active;
>   	struct delayed_work work;
>   	unsigned busy_frontbuffer_bits;
> -	bool link_standby;
>   };
>
>   enum intel_pch {
> diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> index 6c8e9e0..d2ff87d 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -157,14 +157,6 @@ static void hsw_psr_enable_sink(struct intel_dp *intel_dp)
>
>   	aux_clock_divider = intel_dp->get_aux_clock_divider(intel_dp, 0);
>
> -	/* Enable PSR in sink */
> -	if (dev_priv->psr.link_standby)
> -		drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG,
> -				   DP_PSR_ENABLE | DP_PSR_MAIN_LINK_ACTIVE);
> -	else
> -		drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG,
> -				   DP_PSR_ENABLE & ~DP_PSR_MAIN_LINK_ACTIVE);
> -
>   	aux_data_reg = (INTEL_INFO(dev)->gen >= 9) ?
>   				DPA_AUX_CH_DATA1 : EDP_PSR_AUX_DATA1(dev);
>   	aux_ctl_reg = (INTEL_INFO(dev)->gen >= 9) ?
> @@ -193,6 +185,8 @@ static void hsw_psr_enable_sink(struct intel_dp *intel_dp)
>   		   (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) |
>   		   (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT));
>   	}
> +
> +	drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, DP_PSR_ENABLE);
>   }
>
>   static void vlv_psr_enable_source(struct intel_dp *intel_dp)
> @@ -242,9 +236,6 @@ static void hsw_psr_enable_source(struct intel_dp *intel_dp)
>   	uint32_t val = 0x0;
>   	const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
>
> -	if (dev_priv->psr.link_standby)
> -		val |= EDP_PSR_LINK_STANDBY;
> -
>   	if (intel_dp->psr_dpcd[1] & DP_PSR_NO_TRAIN_ON_EXIT) {
>   		val |= EDP_PSR_TP2_TP3_TIME_0us;
>   		val |= EDP_PSR_TP1_TIME_0us;
> @@ -295,6 +286,12 @@ static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
>   		return false;
>   	}
>
> +	if (!IS_VALLEYVIEW(dev) && ((dev_priv->vbt.psr.full_link) ||
> +				    (dig_port->port != PORT_A))){
> +		DRM_DEBUG_KMS("PSR condition failed: Link Standby requested/needed but not supported on this platform\n");
> +		return false;
> +	}
> +
>   	dev_priv->psr.source_ok = true;
>   	return true;
>   }
> @@ -353,12 +350,6 @@ void intel_psr_enable(struct intel_dp *intel_dp)
>   	if (!intel_psr_match_conditions(intel_dp))
>   		goto unlock;
>
> -	/* First we check VBT, but we must respect sink and source
> -	 * known restrictions */
> -	dev_priv->psr.link_standby = dev_priv->vbt.psr.full_link;
> -	if (IS_BROADWELL(dev) && intel_dig_port->port != PORT_A)
> -		dev_priv->psr.link_standby = true;
> -
>   	dev_priv->psr.busy_frontbuffer_bits = 0;
>
>   	if (HAS_DDI(dev)) {
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-03-02 11:41 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-28  1:26 [PATCH 1/7] drm/i915: PSR: Remove wrong LINK_DISABLE Rodrigo Vivi
2015-02-28  1:26 ` [PATCH 2/7] drm/i915: PSR: Fix DP_PSR_NO_TRAIN_ON_EXIT logic Rodrigo Vivi
2015-03-16  5:24   ` R, Durgadoss
2015-03-16 17:35     ` [PATCH] " Rodrigo Vivi
2015-03-16 23:36       ` shuang.he
2015-03-24 15:29       ` Rodrigo Vivi
2015-03-25  0:39         ` Runyan, Arthur J
2015-04-10 18:10           ` Rodrigo Vivi
2015-04-11  1:22             ` shuang.he
2015-04-14 13:18             ` R, Durgadoss
2015-02-28  1:26 ` [PATCH 3/7] drm/i915: PSR: deprecate link_standby support for core platforms Rodrigo Vivi
2015-03-02 11:41   ` Jindal, Sonika [this message]
2015-03-02 20:27     ` Rodrigo Vivi
2015-03-16  5:28   ` R, Durgadoss
2015-03-16 17:37     ` [PATCH] " Rodrigo Vivi
2015-03-16 17:38     ` Rodrigo Vivi
2015-02-28  1:26 ` [PATCH 4/7] drm/i915: PSR VLV: Add single frame update Rodrigo Vivi
2015-03-05  2:48   ` Pandiyan, Dhinakaran
2015-02-28  1:26 ` [PATCH 5/7] drm/i915: Make sure we invalidate frontbuffer on fbcon Rodrigo Vivi
2015-03-02 17:59   ` Daniel Vetter
2015-03-02 18:35     ` Vivi, Rodrigo
2015-03-03  8:28       ` Daniel Vetter
2015-03-03 20:03         ` Vivi, Rodrigo
2015-03-04 14:30           ` Daniel Vetter
2015-03-04 23:05             ` Rodrigo Vivi
2015-03-05 12:06               ` Daniel Vetter
2015-03-10  0:57                 ` [PATCH] " Rodrigo Vivi
2015-03-10 10:08                   ` shuang.he
2015-03-10 10:23                   ` Daniel Vetter
2015-02-28  1:26 ` [PATCH 6/7] drm/i915: VLV/CHV PSR: Increase wait delay time before active PSR Rodrigo Vivi
2015-03-16  5:15   ` R, Durgadoss
2015-02-28  1:26 ` [PATCH 7/7] drm/i915: Enable PSR by default Rodrigo Vivi
2015-03-03  9:54   ` shuang.he
2015-03-16  5:31   ` R, Durgadoss
2015-03-23 20:20     ` Rodrigo Vivi
2015-03-24 10:03       ` Daniel Vetter
2015-03-24 10:08         ` Chris Wilson
2015-03-24 20:55           ` Vivi, Rodrigo
2015-03-24 22:05             ` chris
2015-03-25 13:53               ` Daniel Vetter
2015-03-25 19:27               ` Vivi, Rodrigo
2015-03-25 19:40                 ` chris
2015-03-02 17:56 ` [PATCH 1/7] drm/i915: PSR: Remove wrong LINK_DISABLE Daniel Vetter
2015-03-16  5:15 ` R, Durgadoss
2015-04-09 17:42 ` Matthew Garrett
2015-04-13 23:11   ` Rodrigo Vivi

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=54F44C71.9070300@intel.com \
    --to=sonika.jindal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    /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