[Intel-gfx] [PATCH v3 2/3] drm/i915/psr: Move logic to get TPS registers values to another function
Vivi, Rodrigo
rodrigo.vivi at intel.com
Tue Mar 12 03:22:16 UTC 2019
> On Mar 11, 2019, at 5:15 PM, Pandiyan, Dhinakaran <dhinakaran.pandiyan at intel.com> wrote:
>
>> On Mon, 2019-03-11 at 16:28 -0700, Rodrigo Vivi wrote:
>> 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 at intel.com>
>>> Signed-off-by: José Roberto de Souza <jose.souza at 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...
>>
>
> intel_psr1_get_tp_time(intel_dp)?
+1
>
>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>>
>>> +
>>> if (INTEL_GEN(dev_priv) >= 8)
>>> val |= EDP_PSR_CRC_ENABLE;
>>>
>>> --
>>> 2.21.0
>>>
>>> _______________________________________________
>>> Intel-gfx mailing list
>>> Intel-gfx at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
More information about the Intel-gfx
mailing list