Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915/overlay: Relocate the underrun check

Move the underrun check out from intel_overlay_continue()
so that the DOVSTA register access can stay on the display
side of the parent vs. display driver split.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/20260226100738.29997-6-ville.syrjala@linux.intel.com

+7 -6
+7 -6
drivers/gpu/drm/i915/display/intel_overlay.c
··· 331 331 struct intel_display *display = overlay->display; 332 332 struct i915_request *rq; 333 333 u32 flip_addr = overlay->flip_addr; 334 - u32 tmp, *cs; 334 + u32 *cs; 335 335 336 336 drm_WARN_ON(display->drm, !i915_overlay_is_active(display->drm)); 337 337 338 338 if (load_polyphase_filter) 339 339 flip_addr |= OFC_UPDATE; 340 - 341 - /* check for underruns */ 342 - tmp = intel_de_read(display, DOVSTA); 343 - if (tmp & (1 << 17)) 344 - drm_dbg(display->drm, "overlay underrun, DOVSTA: %x\n", tmp); 345 340 346 341 rq = alloc_request(overlay, NULL); 347 342 if (IS_ERR(rq)) ··· 805 810 bool scale_changed = false; 806 811 struct i915_vma *vma; 807 812 int ret, tmp_width; 813 + u32 tmp; 808 814 809 815 drm_WARN_ON(display->drm, 810 816 !drm_modeset_is_locked(&display->drm->mode_config.connection_mutex)); ··· 890 894 update_colorkey(overlay, regs); 891 895 892 896 iowrite32(overlay_cmd_reg(params), &regs->OCMD); 897 + 898 + /* check for underruns */ 899 + tmp = intel_de_read(display, DOVSTA); 900 + if (tmp & (1 << 17)) 901 + drm_dbg(display->drm, "overlay underrun, DOVSTA: %x\n", tmp); 893 902 894 903 ret = intel_overlay_continue(overlay, vma, scale_changed); 895 904 if (ret)