From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>
Cc: intel-gfx@lists.freedesktop.org,
Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Subject: Re: [PATCH v3 2/3] drm/i915/psr: Move logic to get TPS registers values to another function
Date: Mon, 11 Mar 2019 16:28:02 -0700 [thread overview]
Message-ID: <20190311232802.GD24277@intel.com> (raw)
In-Reply-To: <20190305234734.19506-2-jose.souza@intel.com>
On Tue, Mar 05, 2019 at 03:47:33PM -0800, José Roberto de Souza wrote:
> This will make hsw_activate_psr1() more easy to read and will make
> future modification to TPS registers more easy to review and read.
>
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
> drivers/gpu/drm/i915/intel_psr.c | 56 +++++++++++++++++++-------------
> 1 file changed, 33 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> index 831f345b4ad8..2fa2f4c9c935 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -437,32 +437,13 @@ static void intel_psr_enable_sink(struct intel_dp *intel_dp)
> drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
> }
>
> -static void hsw_activate_psr1(struct intel_dp *intel_dp)
> +static u32 psr1_tps_regs_val_get(struct intel_dp *intel_dp)
> {
> struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> - u32 max_sleep_time = 0x1f;
> - u32 val = EDP_PSR_ENABLE;
> -
> - /* Let's use 6 as the minimum to cover all known cases including the
> - * off-by-one issue that HW has in some cases.
> - */
> - int idle_frames = max(6, dev_priv->vbt.psr.idle_frames);
> -
> - /* sink_sync_latency of 8 means source has to wait for more than 8
> - * frames, we'll go with 9 frames for now
> - */
> - idle_frames = max(idle_frames, dev_priv->psr.sink_sync_latency + 1);
> - val |= idle_frames << EDP_PSR_IDLE_FRAME_SHIFT;
> -
> - val |= max_sleep_time << EDP_PSR_MAX_SLEEP_TIME_SHIFT;
> - if (IS_HASWELL(dev_priv))
> - val |= EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
> -
> - if (dev_priv->psr.link_standby)
> - val |= EDP_PSR_LINK_STANDBY;
> + u32 val = 0;
>
> if (dev_priv->vbt.psr.tp1_wakeup_time_us == 0)
> - val |= EDP_PSR_TP1_TIME_0us;
> + val |= EDP_PSR_TP1_TIME_0us;
> else if (dev_priv->vbt.psr.tp1_wakeup_time_us <= 100)
> val |= EDP_PSR_TP1_TIME_100us;
> else if (dev_priv->vbt.psr.tp1_wakeup_time_us <= 500)
> @@ -471,7 +452,7 @@ static void hsw_activate_psr1(struct intel_dp *intel_dp)
> val |= EDP_PSR_TP1_TIME_2500us;
>
> if (dev_priv->vbt.psr.tp2_tp3_wakeup_time_us == 0)
> - val |= EDP_PSR_TP2_TP3_TIME_0us;
> + val |= EDP_PSR_TP2_TP3_TIME_0us;
> else if (dev_priv->vbt.psr.tp2_tp3_wakeup_time_us <= 100)
> val |= EDP_PSR_TP2_TP3_TIME_100us;
> else if (dev_priv->vbt.psr.tp2_tp3_wakeup_time_us <= 500)
> @@ -485,6 +466,35 @@ static void hsw_activate_psr1(struct intel_dp *intel_dp)
> else
> val |= EDP_PSR_TP1_TP2_SEL;
>
> + return val;
> +}
> +
> +static void hsw_activate_psr1(struct intel_dp *intel_dp)
> +{
> + struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> + u32 max_sleep_time = 0x1f;
> + u32 val = EDP_PSR_ENABLE;
> +
> + /* Let's use 6 as the minimum to cover all known cases including the
> + * off-by-one issue that HW has in some cases.
> + */
> + int idle_frames = max(6, dev_priv->vbt.psr.idle_frames);
> +
> + /* sink_sync_latency of 8 means source has to wait for more than 8
> + * frames, we'll go with 9 frames for now
> + */
> + idle_frames = max(idle_frames, dev_priv->psr.sink_sync_latency + 1);
> + val |= idle_frames << EDP_PSR_IDLE_FRAME_SHIFT;
> +
> + val |= max_sleep_time << EDP_PSR_MAX_SLEEP_TIME_SHIFT;
> + if (IS_HASWELL(dev_priv))
> + val |= EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
> +
> + if (dev_priv->psr.link_standby)
> + val |= EDP_PSR_LINK_STANDBY;
> +
> + val |= psr1_tps_regs_val_get(intel_dp);
I'd prefer intel_psr1_tps...
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> +
> if (INTEL_GEN(dev_priv) >= 8)
> val |= EDP_PSR_CRC_ENABLE;
>
> --
> 2.21.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-03-11 23:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-05 23:47 [PATCH v3 1/3] drm/i915/vbt: Parse and use the new field with PSR2 TP2/3 wakeup time José Roberto de Souza
2019-03-05 23:47 ` [PATCH v3 2/3] drm/i915/psr: Move logic to get TPS registers values to another function José Roberto de Souza
2019-03-11 23:28 ` Rodrigo Vivi [this message]
2019-03-12 0:15 ` Dhinakaran Pandiyan
2019-03-12 3:22 ` Vivi, Rodrigo
2019-03-05 23:47 ` [PATCH v3 3/3] drm/i915/icl+: Always use TPS2 or TPS3 when exiting PSR José Roberto de Souza
2019-03-11 23:34 ` Rodrigo Vivi
2019-03-11 23:38 ` Souza, Jose
2019-03-11 23:44 ` Rodrigo Vivi
2019-03-06 0:11 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [v3,1/3] drm/i915/vbt: Parse and use the new field with PSR2 TP2/3 wakeup time Patchwork
2019-03-06 0:12 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-03-06 0:39 ` ✓ Fi.CI.BAT: success " Patchwork
2019-03-06 8:33 ` ✓ Fi.CI.IGT: " Patchwork
2019-03-11 21:59 ` [PATCH v3 1/3] " 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=20190311232802.GD24277@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=dhinakaran.pandiyan@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jose.souza@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 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.