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