Currently selective fetch area calculation ends up as bogus area in at least following cases: 1. Updated plane is partially or fully outside pipe area 2. Big fb with only part of memory area used for plane These end up as y1 = 0, y2 = 4 or y2 being outside pipe area. This patch set addresses these by ensuring update area is within pipe area or by falling back to full update. Patch set also adds drm_dbg_once* macros to print out debug message only once. drm_dbg_once_kms is used to printout debug message when selective fetch area calculation fails. v3: - Add drm_dbg_once* and use it when sel fetch area calculation fails - Move drm_rect_intersect to clip_area_update v2: - Update commit message of first patch - Set damaged_area x1 and x2 during initialization Cc: José Roberto de Souza <jose.souza@xxxxxxxxx> Cc: Mika Kahola <mika.kahola@xxxxxxxxx> Cc: Mark Pearson <markpearson@xxxxxxxxxx> Jouni Högander (3): drm/print: Add drm_debug_once* macros drm/i915/psr: Use full update In case of area calculation fails drm/i915: Ensure damage clip area is within pipe area drivers/gpu/drm/i915/display/intel_psr.c | 36 +++++++++++++++++++----- include/drm/drm_print.h | 29 +++++++++++++++++++ 2 files changed, 58 insertions(+), 7 deletions(-) -- 2.25.1