* [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-10 13:33 ` Ville Syrjala
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2017-10-10 13:33 UTC (permalink / raw)
To: dri-devel; +Cc: stable, Daniel Vetter
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
On machines where the vblank interrupt fires some time after the start
of vblank (or we just manage to race with the vblank interrupt handler)
we will currently stuff a stale vblank counter value into the flip event,
and thus we'll prematurely complete the flip.
Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
up to date counter value, crucially also remember to add the +1 so that
the delayed vblank interrupt won't complete the flip prematurely.
Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Suggested-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_vblank.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 70f2b9593edc..f14e6c92e332 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
assert_spin_locked(&dev->event_lock);
e->pipe = pipe;
- e->event.sequence = drm_vblank_count(dev, pipe);
+ e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
e->event.crtc_id = crtc->base.id;
list_add_tail(&e->base.link, &dev->vblank_event_list);
}
--
2.13.6
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-10 13:33 ` Ville Syrjala
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2017-10-10 13:33 UTC (permalink / raw)
To: dri-devel; +Cc: stable
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
On machines where the vblank interrupt fires some time after the start
of vblank (or we just manage to race with the vblank interrupt handler)
we will currently stuff a stale vblank counter value into the flip event,
and thus we'll prematurely complete the flip.
Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
up to date counter value, crucially also remember to add the +1 so that
the delayed vblank interrupt won't complete the flip prematurely.
Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Suggested-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_vblank.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 70f2b9593edc..f14e6c92e332 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
assert_spin_locked(&dev->event_lock);
e->pipe = pipe;
- e->event.sequence = drm_vblank_count(dev, pipe);
+ e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
e->event.crtc_id = crtc->base.id;
list_add_tail(&e->base.link, &dev->vblank_event_list);
}
--
2.13.6
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 21+ messages in thread
* ✓ Fi.CI.BAT: success for drm/vblank: Fix flip event vblank count
2017-10-10 13:33 ` Ville Syrjala
(?)
@ 2017-10-11 18:53 ` Patchwork
-1 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2017-10-11 18:53 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
== Series Details ==
Series: drm/vblank: Fix flip event vblank count
URL : https://patchwork.freedesktop.org/series/31761/
State : success
== Summary ==
Series 31761v1 drm/vblank: Fix flip event vblank count
https://patchwork.freedesktop.org/api/1.0/series/31761/revisions/1/mbox/
Test drv_module_reload:
Subgroup basic-no-display:
incomplete -> DMESG-WARN (fi-cfl-s) fdo#103206
fdo#103206 https://bugs.freedesktop.org/show_bug.cgi?id=103206
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:452s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:470s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:389s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:571s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:283s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:520s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:520s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:533s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:516s
fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:564s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:432s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:599s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:437s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:466s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:500s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:474s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:511s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:585s
fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:492s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:590s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:664s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:464s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:665s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:532s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:514s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:471s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:579s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:428s
fi-cnl-y failed to connect after reboot
fi-gdg-551 failed to connect after reboot
326dc1cd4339ecca36f58baf7ddec72f4d1fe0b7 drm-tip: 2017y-10m-11d-17h-34m-40s UTC integration manifest
840df9133ba2 drm/vblank: Fix flip event vblank count
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5998/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 21+ messages in thread
* ✓ Fi.CI.IGT: success for drm/vblank: Fix flip event vblank count
2017-10-10 13:33 ` Ville Syrjala
(?)
(?)
@ 2017-10-12 2:36 ` Patchwork
-1 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2017-10-12 2:36 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
== Series Details ==
Series: drm/vblank: Fix flip event vblank count
URL : https://patchwork.freedesktop.org/series/31761/
State : success
== Summary ==
Test kms_setmode:
Subgroup basic:
pass -> FAIL (shard-hsw) fdo#99912
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
shard-hsw total:2552 pass:1440 dwarn:0 dfail:0 fail:9 skip:1103 time:9680s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5998/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
2017-10-10 13:33 ` Ville Syrjala
@ 2017-10-12 15:20 ` Ville Syrjälä
-1 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjälä @ 2017-10-12 15:20 UTC (permalink / raw)
To: dri-devel; +Cc: stable, Daniel Vetter
On Tue, Oct 10, 2017 at 04:33:22PM +0300, Ville Syrjala wrote:
> From: Ville Syrj�l� <ville.syrjala@linux.intel.com>
>
> On machines where the vblank interrupt fires some time after the start
> of vblank (or we just manage to race with the vblank interrupt handler)
> we will currently stuff a stale vblank counter value into the flip event,
> and thus we'll prematurely complete the flip.
>
> Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> up to date counter value, crucially also remember to add the +1 so that
> the delayed vblank interrupt won't complete the flip prematurely.
>
> Cc: stable@vger.kernel.org
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com>
Pushed to drm-misc-next with Daniel's irc r-b:
16:48 < danvet> vsyrjala, r-b, I think
...
17:31 < vsyrjala> danvet: your irc r-b for vblank_accurate+1 still
holds?
17:32 < danvet> vsyrjala, yeah
> ---
> drivers/gpu/drm/drm_vblank.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 70f2b9593edc..f14e6c92e332 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> assert_spin_locked(&dev->event_lock);
>
> e->pipe = pipe;
> - e->event.sequence = drm_vblank_count(dev, pipe);
> + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
> e->event.crtc_id = crtc->base.id;
> list_add_tail(&e->base.link, &dev->vblank_event_list);
> }
> --
> 2.13.6
--
Ville Syrj�l�
Intel OTC
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-12 15:20 ` Ville Syrjälä
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjälä @ 2017-10-12 15:20 UTC (permalink / raw)
To: dri-devel; +Cc: stable, Daniel Vetter
On Tue, Oct 10, 2017 at 04:33:22PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> On machines where the vblank interrupt fires some time after the start
> of vblank (or we just manage to race with the vblank interrupt handler)
> we will currently stuff a stale vblank counter value into the flip event,
> and thus we'll prematurely complete the flip.
>
> Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> up to date counter value, crucially also remember to add the +1 so that
> the delayed vblank interrupt won't complete the flip prematurely.
>
> Cc: stable@vger.kernel.org
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pushed to drm-misc-next with Daniel's irc r-b:
16:48 < danvet> vsyrjala, r-b, I think
...
17:31 < vsyrjala> danvet: your irc r-b for vblank_accurate+1 still
holds?
17:32 < danvet> vsyrjala, yeah
> ---
> drivers/gpu/drm/drm_vblank.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 70f2b9593edc..f14e6c92e332 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> assert_spin_locked(&dev->event_lock);
>
> e->pipe = pipe;
> - e->event.sequence = drm_vblank_count(dev, pipe);
> + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
> e->event.crtc_id = crtc->base.id;
> list_add_tail(&e->base.link, &dev->vblank_event_list);
> }
> --
> 2.13.6
--
Ville Syrjälä
Intel OTC
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
2017-10-10 13:33 ` Ville Syrjala
@ 2017-10-18 7:07 ` Andrzej Hajda
-1 siblings, 0 replies; 21+ messages in thread
From: Andrzej Hajda @ 2017-10-18 7:07 UTC (permalink / raw)
To: Ville Syrjala, dri-devel; +Cc: stable, Szyprowski, Marek
Hi Ville,
On 10.10.2017 15:33, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> On machines where the vblank interrupt fires some time after the start
> of vblank (or we just manage to race with the vblank interrupt handler)
> we will currently stuff a stale vblank counter value into the flip event,
> and thus we'll prematurely complete the flip.
>
> Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> up to date counter value, crucially also remember to add the +1 so that
> the delayed vblank interrupt won't complete the flip prematurely.
>
> Cc: stable@vger.kernel.org
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/drm_vblank.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 70f2b9593edc..f14e6c92e332 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> assert_spin_locked(&dev->event_lock);
>
> e->pipe = pipe;
> - e->event.sequence = drm_vblank_count(dev, pipe);
> + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
With this patch drm_crtc_arm_vblank_event calls
drm_crtc_accurate_vblank_count, which requires get_vblank_timestamp
callback, otherwise it issue WARN every time it is called.
On the other side most of the users of drm_crtc_arm_vblank_event do not
implement this callback. As a result one can observe multiple WARNs.
It was observed on Exynos platform but grep shows it can affect many
other platforms:
$ git grep -l drm_crtc_arm_vblank_event drivers/gpu/drm/
drivers/gpu/drm/arm/hdlcd_crtc.c
drivers/gpu/drm/arm/malidp_drv.c
drivers/gpu/drm/drm_vblank.c
drivers/gpu/drm/exynos/exynos_drm_crtc.c
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
drivers/gpu/drm/i915/intel_sprite.c
drivers/gpu/drm/imx/ipuv3-crtc.c
drivers/gpu/drm/mxsfb/mxsfb_crtc.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/pl111/pl111_display.c
drivers/gpu/drm/sti/sti_crtc.c
drivers/gpu/drm/stm/ltdc.c
drivers/gpu/drm/sun4i/sun4i_crtc.c
drivers/gpu/drm/tve200/tve200_display.c
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
drivers/gpu/drm/zte/zx_vou.c
$ git grep -l get_vblank_timestamp drivers/gpu/drm/
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/drm_vblank.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/vc4/vc4_drv.c
Regards
Andrzej
> e->event.crtc_id = crtc->base.id;
> list_add_tail(&e->base.link, &dev->vblank_event_list);
> }
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-18 7:07 ` Andrzej Hajda
0 siblings, 0 replies; 21+ messages in thread
From: Andrzej Hajda @ 2017-10-18 7:07 UTC (permalink / raw)
To: Ville Syrjala, dri-devel; +Cc: stable, Szyprowski, Marek
Hi Ville,
On 10.10.2017 15:33, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> On machines where the vblank interrupt fires some time after the start
> of vblank (or we just manage to race with the vblank interrupt handler)
> we will currently stuff a stale vblank counter value into the flip event,
> and thus we'll prematurely complete the flip.
>
> Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> up to date counter value, crucially also remember to add the +1 so that
> the delayed vblank interrupt won't complete the flip prematurely.
>
> Cc: stable@vger.kernel.org
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/drm_vblank.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 70f2b9593edc..f14e6c92e332 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> assert_spin_locked(&dev->event_lock);
>
> e->pipe = pipe;
> - e->event.sequence = drm_vblank_count(dev, pipe);
> + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
With this patch drm_crtc_arm_vblank_event calls
drm_crtc_accurate_vblank_count, which requires get_vblank_timestamp
callback, otherwise it issue WARN every time it is called.
On the other side most of the users of drm_crtc_arm_vblank_event do not
implement this callback. As a result one can observe multiple WARNs.
It was observed on Exynos platform but grep shows it can affect many
other platforms:
$ git grep -l drm_crtc_arm_vblank_event drivers/gpu/drm/
drivers/gpu/drm/arm/hdlcd_crtc.c
drivers/gpu/drm/arm/malidp_drv.c
drivers/gpu/drm/drm_vblank.c
drivers/gpu/drm/exynos/exynos_drm_crtc.c
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
drivers/gpu/drm/i915/intel_sprite.c
drivers/gpu/drm/imx/ipuv3-crtc.c
drivers/gpu/drm/mxsfb/mxsfb_crtc.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/pl111/pl111_display.c
drivers/gpu/drm/sti/sti_crtc.c
drivers/gpu/drm/stm/ltdc.c
drivers/gpu/drm/sun4i/sun4i_crtc.c
drivers/gpu/drm/tve200/tve200_display.c
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
drivers/gpu/drm/zte/zx_vou.c
$ git grep -l get_vblank_timestamp drivers/gpu/drm/
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/drm_vblank.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/vc4/vc4_drv.c
Regards
Andrzej
> e->event.crtc_id = crtc->base.id;
> list_add_tail(&e->base.link, &dev->vblank_event_list);
> }
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
2017-10-18 7:07 ` Andrzej Hajda
@ 2017-10-18 13:50 ` Ville Syrjälä
-1 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjälä @ 2017-10-18 13:50 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: dri-devel, stable, Szyprowski, Marek, Daniel Vetter
On Wed, Oct 18, 2017 at 09:07:47AM +0200, Andrzej Hajda wrote:
> Hi Ville,
>
> On 10.10.2017 15:33, Ville Syrjala wrote:
> > From: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> >
> > On machines where the vblank interrupt fires some time after the start
> > of vblank (or we just manage to race with the vblank interrupt handler)
> > we will currently stuff a stale vblank counter value into the flip event,
> > and thus we'll prematurely complete the flip.
> >
> > Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> > up to date counter value, crucially also remember to add the +1 so that
> > the delayed vblank interrupt won't complete the flip prematurely.
> >
> > Cc: stable@vger.kernel.org
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> > Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/drm_vblank.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index 70f2b9593edc..f14e6c92e332 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> > assert_spin_locked(&dev->event_lock);
> >
> > e->pipe = pipe;
> > - e->event.sequence = drm_vblank_count(dev, pipe);
> > + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
>
> With this patch drm_crtc_arm_vblank_event calls
> drm_crtc_accurate_vblank_count, which requires get_vblank_timestamp
> callback, otherwise it issue WARN every time it is called.
Argh! Maybe just remove the WARN then?
> On the other side most of the users of drm_crtc_arm_vblank_event do not
> implement this callback. As a result one can observe multiple WARNs.
> It was observed on Exynos platform but grep shows it can affect many
> other platforms:
>
> $ git grep -l drm_crtc_arm_vblank_event drivers/gpu/drm/
> drivers/gpu/drm/arm/hdlcd_crtc.c
> drivers/gpu/drm/arm/malidp_drv.c
> drivers/gpu/drm/drm_vblank.c
> drivers/gpu/drm/exynos/exynos_drm_crtc.c
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> drivers/gpu/drm/i915/intel_sprite.c
> drivers/gpu/drm/imx/ipuv3-crtc.c
> drivers/gpu/drm/mxsfb/mxsfb_crtc.c
> drivers/gpu/drm/nouveau/nouveau_display.c
> drivers/gpu/drm/pl111/pl111_display.c
> drivers/gpu/drm/sti/sti_crtc.c
> drivers/gpu/drm/stm/ltdc.c
> drivers/gpu/drm/sun4i/sun4i_crtc.c
> drivers/gpu/drm/tve200/tve200_display.c
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> drivers/gpu/drm/zte/zx_vou.c
>
> $ git grep -l get_vblank_timestamp drivers/gpu/drm/
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> drivers/gpu/drm/drm_vblank.c
> drivers/gpu/drm/i915/i915_irq.c
> drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> drivers/gpu/drm/nouveau/nouveau_drm.c
> drivers/gpu/drm/radeon/radeon_drv.c
> drivers/gpu/drm/vc4/vc4_drv.c
>
> Regards
> Andrzej
>
> > e->event.crtc_id = crtc->base.id;
> > list_add_tail(&e->base.link, &dev->vblank_event_list);
> > }
>
--
Ville Syrj�l�
Intel OTC
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-18 13:50 ` Ville Syrjälä
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjälä @ 2017-10-18 13:50 UTC (permalink / raw)
To: Andrzej Hajda; +Cc: dri-devel, stable, Szyprowski, Marek, Daniel Vetter
On Wed, Oct 18, 2017 at 09:07:47AM +0200, Andrzej Hajda wrote:
> Hi Ville,
>
> On 10.10.2017 15:33, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > On machines where the vblank interrupt fires some time after the start
> > of vblank (or we just manage to race with the vblank interrupt handler)
> > we will currently stuff a stale vblank counter value into the flip event,
> > and thus we'll prematurely complete the flip.
> >
> > Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> > up to date counter value, crucially also remember to add the +1 so that
> > the delayed vblank interrupt won't complete the flip prematurely.
> >
> > Cc: stable@vger.kernel.org
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/drm_vblank.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index 70f2b9593edc..f14e6c92e332 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> > assert_spin_locked(&dev->event_lock);
> >
> > e->pipe = pipe;
> > - e->event.sequence = drm_vblank_count(dev, pipe);
> > + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
>
> With this patch drm_crtc_arm_vblank_event calls
> drm_crtc_accurate_vblank_count, which requires get_vblank_timestamp
> callback, otherwise it issue WARN every time it is called.
Argh! Maybe just remove the WARN then?
> On the other side most of the users of drm_crtc_arm_vblank_event do not
> implement this callback. As a result one can observe multiple WARNs.
> It was observed on Exynos platform but grep shows it can affect many
> other platforms:
>
> $ git grep -l drm_crtc_arm_vblank_event drivers/gpu/drm/
> drivers/gpu/drm/arm/hdlcd_crtc.c
> drivers/gpu/drm/arm/malidp_drv.c
> drivers/gpu/drm/drm_vblank.c
> drivers/gpu/drm/exynos/exynos_drm_crtc.c
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> drivers/gpu/drm/i915/intel_sprite.c
> drivers/gpu/drm/imx/ipuv3-crtc.c
> drivers/gpu/drm/mxsfb/mxsfb_crtc.c
> drivers/gpu/drm/nouveau/nouveau_display.c
> drivers/gpu/drm/pl111/pl111_display.c
> drivers/gpu/drm/sti/sti_crtc.c
> drivers/gpu/drm/stm/ltdc.c
> drivers/gpu/drm/sun4i/sun4i_crtc.c
> drivers/gpu/drm/tve200/tve200_display.c
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> drivers/gpu/drm/zte/zx_vou.c
>
> $ git grep -l get_vblank_timestamp drivers/gpu/drm/
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> drivers/gpu/drm/drm_vblank.c
> drivers/gpu/drm/i915/i915_irq.c
> drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> drivers/gpu/drm/nouveau/nouveau_drm.c
> drivers/gpu/drm/radeon/radeon_drv.c
> drivers/gpu/drm/vc4/vc4_drv.c
>
> Regards
> Andrzej
>
> > e->event.crtc_id = crtc->base.id;
> > list_add_tail(&e->base.link, &dev->vblank_event_list);
> > }
>
--
Ville Syrjälä
Intel OTC
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
2017-10-18 13:50 ` Ville Syrjälä
@ 2017-10-18 14:32 ` Daniel Vetter
-1 siblings, 0 replies; 21+ messages in thread
From: Daniel Vetter @ 2017-10-18 14:32 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Andrzej Hajda, dri-devel, stable, Szyprowski, Marek, Daniel Vetter
On Wed, Oct 18, 2017 at 04:50:19PM +0300, Ville Syrj�l� wrote:
> On Wed, Oct 18, 2017 at 09:07:47AM +0200, Andrzej Hajda wrote:
> > Hi Ville,
> >
> > On 10.10.2017 15:33, Ville Syrjala wrote:
> > > From: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> > >
> > > On machines where the vblank interrupt fires some time after the start
> > > of vblank (or we just manage to race with the vblank interrupt handler)
> > > we will currently stuff a stale vblank counter value into the flip event,
> > > and thus we'll prematurely complete the flip.
> > >
> > > Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> > > up to date counter value, crucially also remember to add the +1 so that
> > > the delayed vblank interrupt won't complete the flip prematurely.
> > >
> > > Cc: stable@vger.kernel.org
> > > Cc: Daniel Vetter <daniel@ffwll.ch>
> > > Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> > > Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> > > ---
> > > drivers/gpu/drm/drm_vblank.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > index 70f2b9593edc..f14e6c92e332 100644
> > > --- a/drivers/gpu/drm/drm_vblank.c
> > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> > > assert_spin_locked(&dev->event_lock);
> > >
> > > e->pipe = pipe;
> > > - e->event.sequence = drm_vblank_count(dev, pipe);
> > > + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
> >
> > With this patch drm_crtc_arm_vblank_event calls
> > drm_crtc_accurate_vblank_count, which requires get_vblank_timestamp
> > callback, otherwise it issue WARN every time it is called.
>
> Argh! Maybe just remove the WARN then?
Yeah tune it down to DRM_DEBUG_KMS or something similar I'd say.
-Daniel
>
> > On the other side most of the users of drm_crtc_arm_vblank_event do not
> > implement this callback. As a result one can observe multiple WARNs.
> > It was observed on Exynos platform but grep shows it can affect many
> > other platforms:
> >
> > $ git grep -l drm_crtc_arm_vblank_event drivers/gpu/drm/
> > drivers/gpu/drm/arm/hdlcd_crtc.c
> > drivers/gpu/drm/arm/malidp_drv.c
> > drivers/gpu/drm/drm_vblank.c
> > drivers/gpu/drm/exynos/exynos_drm_crtc.c
> > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
> > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> > drivers/gpu/drm/i915/intel_sprite.c
> > drivers/gpu/drm/imx/ipuv3-crtc.c
> > drivers/gpu/drm/mxsfb/mxsfb_crtc.c
> > drivers/gpu/drm/nouveau/nouveau_display.c
> > drivers/gpu/drm/pl111/pl111_display.c
> > drivers/gpu/drm/sti/sti_crtc.c
> > drivers/gpu/drm/stm/ltdc.c
> > drivers/gpu/drm/sun4i/sun4i_crtc.c
> > drivers/gpu/drm/tve200/tve200_display.c
> > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> > drivers/gpu/drm/zte/zx_vou.c
> >
> > $ git grep -l get_vblank_timestamp drivers/gpu/drm/
> > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > drivers/gpu/drm/drm_vblank.c
> > drivers/gpu/drm/i915/i915_irq.c
> > drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> > drivers/gpu/drm/nouveau/nouveau_drm.c
> > drivers/gpu/drm/radeon/radeon_drv.c
> > drivers/gpu/drm/vc4/vc4_drv.c
> >
> > Regards
> > Andrzej
> >
> > > e->event.crtc_id = crtc->base.id;
> > > list_add_tail(&e->base.link, &dev->vblank_event_list);
> > > }
> >
>
> --
> Ville Syrj�l�
> Intel OTC
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-18 14:32 ` Daniel Vetter
0 siblings, 0 replies; 21+ messages in thread
From: Daniel Vetter @ 2017-10-18 14:32 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Andrzej Hajda, dri-devel, stable, Szyprowski, Marek, Daniel Vetter
On Wed, Oct 18, 2017 at 04:50:19PM +0300, Ville Syrjälä wrote:
> On Wed, Oct 18, 2017 at 09:07:47AM +0200, Andrzej Hajda wrote:
> > Hi Ville,
> >
> > On 10.10.2017 15:33, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > On machines where the vblank interrupt fires some time after the start
> > > of vblank (or we just manage to race with the vblank interrupt handler)
> > > we will currently stuff a stale vblank counter value into the flip event,
> > > and thus we'll prematurely complete the flip.
> > >
> > > Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
> > > up to date counter value, crucially also remember to add the +1 so that
> > > the delayed vblank interrupt won't complete the flip prematurely.
> > >
> > > Cc: stable@vger.kernel.org
> > > Cc: Daniel Vetter <daniel@ffwll.ch>
> > > Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > > drivers/gpu/drm/drm_vblank.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > index 70f2b9593edc..f14e6c92e332 100644
> > > --- a/drivers/gpu/drm/drm_vblank.c
> > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > @@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
> > > assert_spin_locked(&dev->event_lock);
> > >
> > > e->pipe = pipe;
> > > - e->event.sequence = drm_vblank_count(dev, pipe);
> > > + e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
> >
> > With this patch drm_crtc_arm_vblank_event calls
> > drm_crtc_accurate_vblank_count, which requires get_vblank_timestamp
> > callback, otherwise it issue WARN every time it is called.
>
> Argh! Maybe just remove the WARN then?
Yeah tune it down to DRM_DEBUG_KMS or something similar I'd say.
-Daniel
>
> > On the other side most of the users of drm_crtc_arm_vblank_event do not
> > implement this callback. As a result one can observe multiple WARNs.
> > It was observed on Exynos platform but grep shows it can affect many
> > other platforms:
> >
> > $ git grep -l drm_crtc_arm_vblank_event drivers/gpu/drm/
> > drivers/gpu/drm/arm/hdlcd_crtc.c
> > drivers/gpu/drm/arm/malidp_drv.c
> > drivers/gpu/drm/drm_vblank.c
> > drivers/gpu/drm/exynos/exynos_drm_crtc.c
> > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
> > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> > drivers/gpu/drm/i915/intel_sprite.c
> > drivers/gpu/drm/imx/ipuv3-crtc.c
> > drivers/gpu/drm/mxsfb/mxsfb_crtc.c
> > drivers/gpu/drm/nouveau/nouveau_display.c
> > drivers/gpu/drm/pl111/pl111_display.c
> > drivers/gpu/drm/sti/sti_crtc.c
> > drivers/gpu/drm/stm/ltdc.c
> > drivers/gpu/drm/sun4i/sun4i_crtc.c
> > drivers/gpu/drm/tve200/tve200_display.c
> > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> > drivers/gpu/drm/zte/zx_vou.c
> >
> > $ git grep -l get_vblank_timestamp drivers/gpu/drm/
> > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > drivers/gpu/drm/drm_vblank.c
> > drivers/gpu/drm/i915/i915_irq.c
> > drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> > drivers/gpu/drm/nouveau/nouveau_drm.c
> > drivers/gpu/drm/radeon/radeon_drv.c
> > drivers/gpu/drm/vc4/vc4_drv.c
> >
> > Regards
> > Andrzej
> >
> > > e->event.crtc_id = crtc->base.id;
> > > list_add_tail(&e->base.link, &dev->vblank_event_list);
> > > }
> >
>
> --
> Ville Syrjälä
> Intel OTC
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
2017-10-18 7:07 ` Andrzej Hajda
@ 2017-10-23 15:25 ` Ville Syrjala
-1 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2017-10-23 15:25 UTC (permalink / raw)
To: dri-devel; +Cc: stable, Daniel Vetter, Szyprowski, Marek, Andrzej Hajda
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
even drivers that don't implement accurate vblank timestamps will end
up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
time drm_crtc_arm_vblank_event() gets called. The could be as often
as every frame for each active crtc.
Considering drm_crtc_accurate_vblank_count() is never any worse than
the drm_vblank_count() we used previously, let's just skip the WARN
unless DRM_UT_VBL is enabled. That way people won't be bothered by
this unless they're debugging vblank code. And let's also change it
to WARN_ONCE() so that even when you're debugging vblank code you
won't get drowned by constant WARNs.
Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Reported-by: Andrzej Hajda <a.hajda@samsung.com>
Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_vblank.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 13722c373a6a..c81c297995c6 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
u32 vblank;
unsigned long flags;
- WARN(!dev->driver->get_vblank_timestamp,
- "This function requires support for accurate vblank timestamps.");
+ WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
+ "This function requires support for accurate vblank timestamps.");
spin_lock_irqsave(&dev->vblank_time_lock, flags);
--
2.13.6
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
@ 2017-10-23 15:25 ` Ville Syrjala
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2017-10-23 15:25 UTC (permalink / raw)
To: dri-devel; +Cc: stable, Szyprowski, Marek
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
even drivers that don't implement accurate vblank timestamps will end
up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
time drm_crtc_arm_vblank_event() gets called. The could be as often
as every frame for each active crtc.
Considering drm_crtc_accurate_vblank_count() is never any worse than
the drm_vblank_count() we used previously, let's just skip the WARN
unless DRM_UT_VBL is enabled. That way people won't be bothered by
this unless they're debugging vblank code. And let's also change it
to WARN_ONCE() so that even when you're debugging vblank code you
won't get drowned by constant WARNs.
Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Reported-by: Andrzej Hajda <a.hajda@samsung.com>
Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_vblank.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 13722c373a6a..c81c297995c6 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
u32 vblank;
unsigned long flags;
- WARN(!dev->driver->get_vblank_timestamp,
- "This function requires support for accurate vblank timestamps.");
+ WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
+ "This function requires support for accurate vblank timestamps.");
spin_lock_irqsave(&dev->vblank_time_lock, flags);
--
2.13.6
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
2017-10-23 15:25 ` Ville Syrjala
(?)
@ 2017-10-24 9:01 ` Benjamin Gaignard
2017-10-30 9:19 ` Daniel Vetter
-1 siblings, 1 reply; 21+ messages in thread
From: Benjamin Gaignard @ 2017-10-24 9:01 UTC (permalink / raw)
To: Ville Syrjala; +Cc: dri-devel, stable, Szyprowski, Marek
2017-10-23 17:25 GMT+02:00 Ville Syrjala <ville.syrjala@linux.intel.com>:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> even drivers that don't implement accurate vblank timestamps will end
> up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
> time drm_crtc_arm_vblank_event() gets called. The could be as often
> as every frame for each active crtc.
>
> Considering drm_crtc_accurate_vblank_count() is never any worse than
> the drm_vblank_count() we used previously, let's just skip the WARN
> unless DRM_UT_VBL is enabled. That way people won't be bothered by
> this unless they're debugging vblank code. And let's also change it
> to WARN_ONCE() so that even when you're debugging vblank code you
> won't get drowned by constant WARNs.
>
> Cc: stable@vger.kernel.org
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Reported-by: Andrzej Hajda <a.hajda@samsung.com>
> Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
I have tested it on sti and stm driver, it fix the problem, thanks.
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> ---
> drivers/gpu/drm/drm_vblank.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 13722c373a6a..c81c297995c6 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
> u32 vblank;
> unsigned long flags;
>
> - WARN(!dev->driver->get_vblank_timestamp,
> - "This function requires support for accurate vblank timestamps.");
> + WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
> + "This function requires support for accurate vblank timestamps.");
>
> spin_lock_irqsave(&dev->vblank_time_lock, flags);
>
> --
> 2.13.6
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
2017-10-24 9:01 ` Benjamin Gaignard
@ 2017-10-30 9:19 ` Daniel Vetter
0 siblings, 0 replies; 21+ messages in thread
From: Daniel Vetter @ 2017-10-30 9:19 UTC (permalink / raw)
To: Benjamin Gaignard; +Cc: Ville Syrjala, stable, dri-devel, Szyprowski, Marek
On Tue, Oct 24, 2017 at 11:01:32AM +0200, Benjamin Gaignard wrote:
> 2017-10-23 17:25 GMT+02:00 Ville Syrjala <ville.syrjala@linux.intel.com>:
> > From: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> >
> > Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> > even drivers that don't implement accurate vblank timestamps will end
> > up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
> > time drm_crtc_arm_vblank_event() gets called. The could be as often
> > as every frame for each active crtc.
> >
> > Considering drm_crtc_accurate_vblank_count() is never any worse than
> > the drm_vblank_count() we used previously, let's just skip the WARN
> > unless DRM_UT_VBL is enabled. That way people won't be bothered by
> > this unless they're debugging vblank code. And let's also change it
> > to WARN_ONCE() so that even when you're debugging vblank code you
> > won't get drowned by constant WARNs.
> >
> > Cc: stable@vger.kernel.org
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
> > Cc: Andrzej Hajda <a.hajda@samsung.com>
> > Reported-by: Andrzej Hajda <a.hajda@samsung.com>
> > Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> > Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com>
>
> I have tested it on sti and stm driver, it fix the problem, thanks.
>
> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
>
> > ---
> > drivers/gpu/drm/drm_vblank.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index 13722c373a6a..c81c297995c6 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
> > u32 vblank;
> > unsigned long flags;
> >
> > - WARN(!dev->driver->get_vblank_timestamp,
> > - "This function requires support for accurate vblank timestamps.");
> > + WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
> > + "This function requires support for accurate vblank timestamps.");
Somewhat a bikeshed, but if we e.g. enable debugging in a CI or piglit
run, then this could change the results. I'd go with a if ()
DRM_DEBUG_VBLANK. Either way:
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> >
> > spin_lock_irqsave(&dev->vblank_time_lock, flags);
> >
> > --
> > 2.13.6
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
@ 2017-10-30 9:19 ` Daniel Vetter
0 siblings, 0 replies; 21+ messages in thread
From: Daniel Vetter @ 2017-10-30 9:19 UTC (permalink / raw)
To: Benjamin Gaignard; +Cc: dri-devel, stable, Szyprowski, Marek
On Tue, Oct 24, 2017 at 11:01:32AM +0200, Benjamin Gaignard wrote:
> 2017-10-23 17:25 GMT+02:00 Ville Syrjala <ville.syrjala@linux.intel.com>:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> > even drivers that don't implement accurate vblank timestamps will end
> > up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
> > time drm_crtc_arm_vblank_event() gets called. The could be as often
> > as every frame for each active crtc.
> >
> > Considering drm_crtc_accurate_vblank_count() is never any worse than
> > the drm_vblank_count() we used previously, let's just skip the WARN
> > unless DRM_UT_VBL is enabled. That way people won't be bothered by
> > this unless they're debugging vblank code. And let's also change it
> > to WARN_ONCE() so that even when you're debugging vblank code you
> > won't get drowned by constant WARNs.
> >
> > Cc: stable@vger.kernel.org
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
> > Cc: Andrzej Hajda <a.hajda@samsung.com>
> > Reported-by: Andrzej Hajda <a.hajda@samsung.com>
> > Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> I have tested it on sti and stm driver, it fix the problem, thanks.
>
> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
>
> > ---
> > drivers/gpu/drm/drm_vblank.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > index 13722c373a6a..c81c297995c6 100644
> > --- a/drivers/gpu/drm/drm_vblank.c
> > +++ b/drivers/gpu/drm/drm_vblank.c
> > @@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
> > u32 vblank;
> > unsigned long flags;
> >
> > - WARN(!dev->driver->get_vblank_timestamp,
> > - "This function requires support for accurate vblank timestamps.");
> > + WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
> > + "This function requires support for accurate vblank timestamps.");
Somewhat a bikeshed, but if we e.g. enable debugging in a CI or piglit
run, then this could change the results. I'd go with a if ()
DRM_DEBUG_VBLANK. Either way:
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> >
> > spin_lock_irqsave(&dev->vblank_time_lock, flags);
> >
> > --
> > 2.13.6
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
2017-10-30 9:19 ` Daniel Vetter
(?)
@ 2017-11-16 14:19 ` Benjamin Gaignard
2017-11-16 16:14 ` Ville Syrjälä
-1 siblings, 1 reply; 21+ messages in thread
From: Benjamin Gaignard @ 2017-11-16 14:19 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Ville Syrjala, stable, dri-devel, Szyprowski, Marek
2017-10-30 10:19 GMT+01:00 Daniel Vetter <daniel@ffwll.ch>:
> On Tue, Oct 24, 2017 at 11:01:32AM +0200, Benjamin Gaignard wrote:
>> 2017-10-23 17:25 GMT+02:00 Ville Syrjala <ville.syrjala@linux.intel.com>:
>> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >
>> > Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
>> > even drivers that don't implement accurate vblank timestamps will end
>> > up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
>> > time drm_crtc_arm_vblank_event() gets called. The could be as often
>> > as every frame for each active crtc.
>> >
>> > Considering drm_crtc_accurate_vblank_count() is never any worse than
>> > the drm_vblank_count() we used previously, let's just skip the WARN
>> > unless DRM_UT_VBL is enabled. That way people won't be bothered by
>> > this unless they're debugging vblank code. And let's also change it
>> > to WARN_ONCE() so that even when you're debugging vblank code you
>> > won't get drowned by constant WARNs.
>> >
>> > Cc: stable@vger.kernel.org
>> > Cc: Daniel Vetter <daniel@ffwll.ch>
>> > Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
>> > Cc: Andrzej Hajda <a.hajda@samsung.com>
>> > Reported-by: Andrzej Hajda <a.hajda@samsung.com>
>> > Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
>> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> I have tested it on sti and stm driver, it fix the problem, thanks.
>>
>> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
>>
>> > ---
>> > drivers/gpu/drm/drm_vblank.c | 4 ++--
>> > 1 file changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>> > index 13722c373a6a..c81c297995c6 100644
>> > --- a/drivers/gpu/drm/drm_vblank.c
>> > +++ b/drivers/gpu/drm/drm_vblank.c
>> > @@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
>> > u32 vblank;
>> > unsigned long flags;
>> >
>> > - WARN(!dev->driver->get_vblank_timestamp,
>> > - "This function requires support for accurate vblank timestamps.");
>> > + WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
>> > + "This function requires support for accurate vblank timestamps.");
>
> Somewhat a bikeshed, but if we e.g. enable debugging in a CI or piglit
> run, then this could change the results. I'd go with a if ()
> DRM_DEBUG_VBLANK. Either way:
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
Does something is missing to merge this fix in drm-misc ?
Without it I got warning at each frame.
Benjamin
>> >
>> > spin_lock_irqsave(&dev->vblank_time_lock, flags);
>> >
>> > --
>> > 2.13.6
>> >
>> > _______________________________________________
>> > dri-devel mailing list
>> > dri-devel@lists.freedesktop.org
>> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
2017-11-16 14:19 ` Benjamin Gaignard
@ 2017-11-16 16:14 ` Ville Syrjälä
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjälä @ 2017-11-16 16:14 UTC (permalink / raw)
To: Benjamin Gaignard; +Cc: Daniel Vetter, stable, dri-devel, Szyprowski, Marek
On Thu, Nov 16, 2017 at 03:19:35PM +0100, Benjamin Gaignard wrote:
> 2017-10-30 10:19 GMT+01:00 Daniel Vetter <daniel@ffwll.ch>:
> > On Tue, Oct 24, 2017 at 11:01:32AM +0200, Benjamin Gaignard wrote:
> >> 2017-10-23 17:25 GMT+02:00 Ville Syrjala <ville.syrjala@linux.intel.com>:
> >> > From: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> >> >
> >> > Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> >> > even drivers that don't implement accurate vblank timestamps will end
> >> > up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
> >> > time drm_crtc_arm_vblank_event() gets called. The could be as often
> >> > as every frame for each active crtc.
> >> >
> >> > Considering drm_crtc_accurate_vblank_count() is never any worse than
> >> > the drm_vblank_count() we used previously, let's just skip the WARN
> >> > unless DRM_UT_VBL is enabled. That way people won't be bothered by
> >> > this unless they're debugging vblank code. And let's also change it
> >> > to WARN_ONCE() so that even when you're debugging vblank code you
> >> > won't get drowned by constant WARNs.
> >> >
> >> > Cc: stable@vger.kernel.org
> >> > Cc: Daniel Vetter <daniel@ffwll.ch>
> >> > Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
> >> > Cc: Andrzej Hajda <a.hajda@samsung.com>
> >> > Reported-by: Andrzej Hajda <a.hajda@samsung.com>
> >> > Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> >> > Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> >>
> >> I have tested it on sti and stm driver, it fix the problem, thanks.
> >>
> >> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> >>
> >> > ---
> >> > drivers/gpu/drm/drm_vblank.c | 4 ++--
> >> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> >> > index 13722c373a6a..c81c297995c6 100644
> >> > --- a/drivers/gpu/drm/drm_vblank.c
> >> > +++ b/drivers/gpu/drm/drm_vblank.c
> >> > @@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
> >> > u32 vblank;
> >> > unsigned long flags;
> >> >
> >> > - WARN(!dev->driver->get_vblank_timestamp,
> >> > - "This function requires support for accurate vblank timestamps.");
> >> > + WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
> >> > + "This function requires support for accurate vblank timestamps.");
> >
> > Somewhat a bikeshed, but if we e.g. enable debugging in a CI or piglit
> > run, then this could change the results. I'd go with a if ()
> > DRM_DEBUG_VBLANK. Either way:
> >
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> >
>
> Does something is missing to merge this fix in drm-misc ?
> Without it I got warning at each frame.
Pushed... 9 days ago it seems.
--
Ville Syrj�l�
Intel OTC
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug
@ 2017-11-16 16:14 ` Ville Syrjälä
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjälä @ 2017-11-16 16:14 UTC (permalink / raw)
To: Benjamin Gaignard; +Cc: Daniel Vetter, stable, dri-devel, Szyprowski, Marek
On Thu, Nov 16, 2017 at 03:19:35PM +0100, Benjamin Gaignard wrote:
> 2017-10-30 10:19 GMT+01:00 Daniel Vetter <daniel@ffwll.ch>:
> > On Tue, Oct 24, 2017 at 11:01:32AM +0200, Benjamin Gaignard wrote:
> >> 2017-10-23 17:25 GMT+02:00 Ville Syrjala <ville.syrjala@linux.intel.com>:
> >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> >
> >> > Since commit 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> >> > even drivers that don't implement accurate vblank timestamps will end
> >> > up using drm_crtc_accurate_vblank_count(). That leads to a WARN every
> >> > time drm_crtc_arm_vblank_event() gets called. The could be as often
> >> > as every frame for each active crtc.
> >> >
> >> > Considering drm_crtc_accurate_vblank_count() is never any worse than
> >> > the drm_vblank_count() we used previously, let's just skip the WARN
> >> > unless DRM_UT_VBL is enabled. That way people won't be bothered by
> >> > this unless they're debugging vblank code. And let's also change it
> >> > to WARN_ONCE() so that even when you're debugging vblank code you
> >> > won't get drowned by constant WARNs.
> >> >
> >> > Cc: stable@vger.kernel.org
> >> > Cc: Daniel Vetter <daniel@ffwll.ch>
> >> > Cc: "Szyprowski, Marek" <m.szyprowski@samsung.com>
> >> > Cc: Andrzej Hajda <a.hajda@samsung.com>
> >> > Reported-by: Andrzej Hajda <a.hajda@samsung.com>
> >> > Fixes: 632c6e4edef1 ("drm/vblank: Fix flip event vblank count")
> >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >>
> >> I have tested it on sti and stm driver, it fix the problem, thanks.
> >>
> >> Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> >>
> >> > ---
> >> > drivers/gpu/drm/drm_vblank.c | 4 ++--
> >> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> >> > index 13722c373a6a..c81c297995c6 100644
> >> > --- a/drivers/gpu/drm/drm_vblank.c
> >> > +++ b/drivers/gpu/drm/drm_vblank.c
> >> > @@ -299,8 +299,8 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc)
> >> > u32 vblank;
> >> > unsigned long flags;
> >> >
> >> > - WARN(!dev->driver->get_vblank_timestamp,
> >> > - "This function requires support for accurate vblank timestamps.");
> >> > + WARN_ONCE(drm_debug & DRM_UT_VBL && !dev->driver->get_vblank_timestamp,
> >> > + "This function requires support for accurate vblank timestamps.");
> >
> > Somewhat a bikeshed, but if we e.g. enable debugging in a CI or piglit
> > run, then this could change the results. I'd go with a if ()
> > DRM_DEBUG_VBLANK. Either way:
> >
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> >
>
> Does something is missing to merge this fix in drm-misc ?
> Without it I got warning at each frame.
Pushed... 9 days ago it seems.
--
Ville Syrjälä
Intel OTC
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH] drm/vblank: Fix flip event vblank count
@ 2017-10-10 13:33 Ville Syrjala
0 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2017-10-10 13:33 UTC (permalink / raw)
To: dri-devel; +Cc: stable
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
On machines where the vblank interrupt fires some time after the start
of vblank (or we just manage to race with the vblank interrupt handler)
we will currently stuff a stale vblank counter value into the flip event,
and thus we'll prematurely complete the flip.
Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
up to date counter value, crucially also remember to add the +1 so that
the delayed vblank interrupt won't complete the flip prematurely.
Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Suggested-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_vblank.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 70f2b9593edc..f14e6c92e332 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -869,7 +869,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
assert_spin_locked(&dev->event_lock);
e->pipe = pipe;
- e->event.sequence = drm_vblank_count(dev, pipe);
+ e->event.sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
e->event.crtc_id = crtc->base.id;
list_add_tail(&e->base.link, &dev->vblank_event_list);
}
--
2.13.6
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 21+ messages in thread
end of thread, other threads:[~2017-11-16 16:14 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CGME20171010133338epcas4p3860854878d180c8fae89d9072fcf76be@epcas4p3.samsung.com>
2017-10-10 13:33 ` [PATCH] drm/vblank: Fix flip event vblank count Ville Syrjala
2017-10-10 13:33 ` Ville Syrjala
2017-10-11 18:53 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-10-12 2:36 ` ✓ Fi.CI.IGT: " Patchwork
2017-10-12 15:20 ` [PATCH] " Ville Syrjälä
2017-10-12 15:20 ` Ville Syrjälä
2017-10-18 7:07 ` Andrzej Hajda
2017-10-18 7:07 ` Andrzej Hajda
2017-10-18 13:50 ` Ville Syrjälä
2017-10-18 13:50 ` Ville Syrjälä
2017-10-18 14:32 ` Daniel Vetter
2017-10-18 14:32 ` Daniel Vetter
2017-10-23 15:25 ` [PATCH] drm/vblank: Tune drm_crtc_accurate_vblank_count() WARN down to a debug Ville Syrjala
2017-10-23 15:25 ` Ville Syrjala
2017-10-24 9:01 ` Benjamin Gaignard
2017-10-30 9:19 ` Daniel Vetter
2017-10-30 9:19 ` Daniel Vetter
2017-11-16 14:19 ` Benjamin Gaignard
2017-11-16 16:14 ` Ville Syrjälä
2017-11-16 16:14 ` Ville Syrjälä
2017-10-10 13:33 [PATCH] drm/vblank: Fix flip event vblank count Ville Syrjala
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.