Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1.
@ 2014-10-30 12:35 Rodrigo Vivi
  2014-11-03 12:49 ` Daniel Vetter
  0 siblings, 1 reply; 5+ messages in thread
From: Rodrigo Vivi @ 2014-10-30 12:35 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula, Arthur Runyan, Rodrigo Vivi

It was identified that in some cases when moving cursor Hardware can do
mistake with idle_frame count. So Spec is being updated to use
2 as minimum idle_frames.

Reference: https://hsdhsw.intel.com/hsd/haswell_platform/default.aspx#sighting/default.aspx?sighting_id=4394433
Cc: Arthur Runyan <arthur.j.runyan@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 47e9d71..8cfbbc2 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -2178,7 +2178,7 @@ static void intel_edp_psr_enable_source(struct intel_dp *intel_dp)
 	struct drm_device *dev = dig_port->base.base.dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	uint32_t max_sleep_time = 0x1f;
-	uint32_t idle_frames = 1;
+	uint32_t idle_frames = 2; /* 2 is the minimum allowed */
 	uint32_t val = 0x0;
 	const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
 	bool only_standby = false;
-- 
1.9.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1.
  2014-10-30 12:35 [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1 Rodrigo Vivi
@ 2014-11-03 12:49 ` Daniel Vetter
  2014-11-03 17:25   ` Runyan, Arthur J
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Vetter @ 2014-11-03 12:49 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: Jani Nikula, intel-gfx, Arthur Runyan

On Thu, Oct 30, 2014 at 05:35:55AM -0700, Rodrigo Vivi wrote:
> It was identified that in some cases when moving cursor Hardware can do
> mistake with idle_frame count. So Spec is being updated to use
> 2 as minimum idle_frames.
> 
> Reference: https://hsdhsw.intel.com/hsd/haswell_platform/default.aspx#sighting/default.aspx?sighting_id=4394433
> Cc: Arthur Runyan <arthur.j.runyan@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

Since we have full-blown sw frontbuffer tracking: Do we care?

I.e. is the effect of idle_frames = 1 that the hw will go bananas (bad, we
want this patch) or that it might miss a cursor movement (no problem, the
kernel will catch it anyway)?

Cheers, Daniel

> ---
>  drivers/gpu/drm/i915/intel_dp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 47e9d71..8cfbbc2 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -2178,7 +2178,7 @@ static void intel_edp_psr_enable_source(struct intel_dp *intel_dp)
>  	struct drm_device *dev = dig_port->base.base.dev;
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	uint32_t max_sleep_time = 0x1f;
> -	uint32_t idle_frames = 1;
> +	uint32_t idle_frames = 2; /* 2 is the minimum allowed */
>  	uint32_t val = 0x0;
>  	const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
>  	bool only_standby = false;
> -- 
> 1.9.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1.
  2014-11-03 12:49 ` Daniel Vetter
@ 2014-11-03 17:25   ` Runyan, Arthur J
  2014-11-08  0:01     ` Rodrigo Vivi
  0 siblings, 1 reply; 5+ messages in thread
From: Runyan, Arthur J @ 2014-11-03 17:25 UTC (permalink / raw)
  To: Daniel Vetter, Vivi, Rodrigo
  Cc: Nikula, Jani, intel-gfx@lists.freedesktop.org

>From: Daniel Vetter 
>
>On Thu, Oct 30, 2014 at 05:35:55AM -0700, Rodrigo Vivi wrote:
>> It was identified that in some cases when moving cursor Hardware can do
>> mistake with idle_frame count. So Spec is being updated to use
>> 2 as minimum idle_frames.
>>
>> Reference:
>https://hsdhsw.intel.com/hsd/haswell_platform/default.aspx#sighting/default.as
>px?sighting_id=4394433
>> Cc: Arthur Runyan <arthur.j.runyan@intel.com>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
>Since we have full-blown sw frontbuffer tracking: Do we care?
>
>I.e. is the effect of idle_frames = 1 that the hw will go bananas (bad, we
>want this patch) or that it might miss a cursor movement (no problem, the
>kernel will catch it anyway)?
>

The behavior will depend on the panel.  Going bananas is a possibility.
It also looks like VBT is being used to indicate that some panels have minimum idle frame requirements, so you really should be using VBT + 1 to ensure the hardware always outputs at least the VBT specified number of frames.


>Cheers, Daniel
>
>> ---
>>  drivers/gpu/drm/i915/intel_dp.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index 47e9d71..8cfbbc2 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -2178,7 +2178,7 @@ static void intel_edp_psr_enable_source(struct
>intel_dp *intel_dp)
>>  	struct drm_device *dev = dig_port->base.base.dev;
>>  	struct drm_i915_private *dev_priv = dev->dev_private;
>>  	uint32_t max_sleep_time = 0x1f;
>> -	uint32_t idle_frames = 1;
>> +	uint32_t idle_frames = 2; /* 2 is the minimum allowed */
>>  	uint32_t val = 0x0;
>>  	const uint32_t link_entry_time =
>EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
>>  	bool only_standby = false;
>> --
>> 1.9.3
>>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1.
  2014-11-03 17:25   ` Runyan, Arthur J
@ 2014-11-08  0:01     ` Rodrigo Vivi
  2014-11-11 10:17       ` Daniel Vetter
  0 siblings, 1 reply; 5+ messages in thread
From: Rodrigo Vivi @ 2014-11-08  0:01 UTC (permalink / raw)
  To: Runyan, Arthur J
  Cc: Nikula, Jani, intel-gfx@lists.freedesktop.org, Vivi, Rodrigo

On Mon, Nov 3, 2014 at 9:25 AM, Runyan, Arthur J
<arthur.j.runyan@intel.com> wrote:
>>From: Daniel Vetter
>>
>>On Thu, Oct 30, 2014 at 05:35:55AM -0700, Rodrigo Vivi wrote:
>>> It was identified that in some cases when moving cursor Hardware can do
>>> mistake with idle_frame count. So Spec is being updated to use
>>> 2 as minimum idle_frames.
>>>
>>> Reference:
>>https://hsdhsw.intel.com/hsd/haswell_platform/default.aspx#sighting/default.as
>>px?sighting_id=4394433
>>> Cc: Arthur Runyan <arthur.j.runyan@intel.com>
>>> Cc: Jani Nikula <jani.nikula@intel.com>
>>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>
>>Since we have full-blown sw frontbuffer tracking: Do we care?
>>
>>I.e. is the effect of idle_frames = 1 that the hw will go bananas (bad, we
>>want this patch) or that it might miss a cursor movement (no problem, the
>>kernel will catch it anyway)?

Even with the frontbuffer tracking HW still controls when to really
entry PSR based on this count. So I prefer to be on the safe side and
do the propper setup. If we
I had faced some cases here where even with propper frontbuffer
tracking idle_frames=2 let it more stable. I had also sent this same
patch in the past. But at that point I didn't know we had this miss
calculation issue on HW.

>>
>
> The behavior will depend on the panel.  Going bananas is a possibility.
> It also looks like VBT is being used to indicate that some panels have minimum idle frame requirements, so you really should be using VBT + 1 to ensure the hardware always outputs at least the VBT specified number of frames.

After think a bit I still think this is the patch to go to -fixes.
On the reorg series with 4 patches I just sent I add VBT parse and get
this idle_frame from there. But I'd prefer that regorg going to dinq
and this patch here to -fixes.

>
>
>>Cheers, Daniel
>>
>>> ---
>>>  drivers/gpu/drm/i915/intel_dp.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>>> index 47e9d71..8cfbbc2 100644
>>> --- a/drivers/gpu/drm/i915/intel_dp.c
>>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>>> @@ -2178,7 +2178,7 @@ static void intel_edp_psr_enable_source(struct
>>intel_dp *intel_dp)
>>>      struct drm_device *dev = dig_port->base.base.dev;
>>>      struct drm_i915_private *dev_priv = dev->dev_private;
>>>      uint32_t max_sleep_time = 0x1f;
>>> -    uint32_t idle_frames = 1;
>>> +    uint32_t idle_frames = 2; /* 2 is the minimum allowed */
>>>      uint32_t val = 0x0;
>>>      const uint32_t link_entry_time =
>>EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
>>>      bool only_standby = false;
>>> --
>>> 1.9.3
>>>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Thanks,
Rodrigo.

-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1.
  2014-11-08  0:01     ` Rodrigo Vivi
@ 2014-11-11 10:17       ` Daniel Vetter
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel Vetter @ 2014-11-11 10:17 UTC (permalink / raw)
  To: Rodrigo Vivi
  Cc: Nikula, Jani, intel-gfx@lists.freedesktop.org, Runyan, Arthur J,
	Vivi, Rodrigo

On Fri, Nov 07, 2014 at 04:01:29PM -0800, Rodrigo Vivi wrote:
> After think a bit I still think this is the patch to go to -fixes.
> On the reorg series with 4 patches I just sent I add VBT parse and get
> this idle_frame from there. But I'd prefer that regorg going to dinq
> and this patch here to -fixes.

psr is disabled in 3.18 (and dinq fwiw) so I don't think this is -fixes
material.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-11-11 10:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-30 12:35 [PATCH] drm/i915: HSW/BDW PSR Set idle_frames=2 since sometimes it can be off by 1 Rodrigo Vivi
2014-11-03 12:49 ` Daniel Vetter
2014-11-03 17:25   ` Runyan, Arthur J
2014-11-08  0:01     ` Rodrigo Vivi
2014-11-11 10:17       ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox