mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
drm/i915/display: Make intel_crtc_get_vblank_counter safe on PREEMPT_RT
drm_crtc_accurate_vblank_count takes a spinlock, which we should avoid in tracepoints and debug functions. This also prevents taking the spinlock 2x during the critical section of pipe updates for DSI updates. Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://lore.kernel.org/r/20250829131701.15607-2-dev@lankhorst.se Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
This commit is contained in:
parent
ed1fbee3de
commit
76e46dbf80
|
|
@ -84,8 +84,13 @@ u32 intel_crtc_get_vblank_counter(struct intel_crtc *crtc)
|
|||
if (!crtc->active)
|
||||
return 0;
|
||||
|
||||
if (!vblank->max_vblank_count)
|
||||
return (u32)drm_crtc_accurate_vblank_count(&crtc->base);
|
||||
if (!vblank->max_vblank_count) {
|
||||
/* On preempt-rt we cannot take the vblank spinlock since this function is called from tracepoints */
|
||||
if (IS_ENABLED(CONFIG_PREEMPT_RT))
|
||||
return (u32)drm_crtc_vblank_count(&crtc->base);
|
||||
else
|
||||
return (u32)drm_crtc_accurate_vblank_count(&crtc->base);
|
||||
}
|
||||
|
||||
return crtc->base.funcs->get_vblank_counter(&crtc->base);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user