From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9A99EE9A04A for ; Wed, 18 Feb 2026 15:28:51 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 597A110E5D8; Wed, 18 Feb 2026 15:28:51 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="nFTJRl8S"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id 769B210E5E5; Wed, 18 Feb 2026 15:28:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1771428529; x=1802964529; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=P73+0tH4mI2i6zaEjm/N9Y7yFFHh/D/NgUtd2KK9quU=; b=nFTJRl8SjlY3lwfB3kjIPjKrYkK0kHvdfyDnRmqAa6o9w7jLo3XDYIeW J8m/pqkxWnMpKkzp1mjXrWJ3zu+K8pl5YujUMRKHLvQkkuTgutK+Whrvx kVn2iciYpReSlP10PLwF/ITze8uOfQ/G4L3ArvsEfVbzSQo2ZC+Wtxp1K VlcqjibbKAsaGVZwr3oS7kWq6b5a/qiO+lhETdOKhX3Q/4gKIoIdUC70B oWOB8E5Gr9cCcO+GYhG/kL+tZsfvw+KEnPwsDtp9j/Oqyqc7m+zUvdfBG dnkXal15KPYdGBfL6vJ6JboG5OoMBbCA4f/6AUgsqqWBFS36W8QArcb5r Q==; X-CSE-ConnectionGUID: 8hNLHl2VSR+uZ479y0rSYw== X-CSE-MsgGUID: WNVNwE/ARrajjyNlvdgkaw== X-IronPort-AV: E=McAfee;i="6800,10657,11705"; a="60084470" X-IronPort-AV: E=Sophos;i="6.21,298,1763452800"; d="scan'208";a="60084470" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2026 07:28:49 -0800 X-CSE-ConnectionGUID: /FikamPMSUeRcd1FKkoD7w== X-CSE-MsgGUID: gbLj30RTTvyZAX2MKZbxXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,298,1763452800"; d="scan'208";a="218756642" Received: from vpanait-mobl.ger.corp.intel.com (HELO localhost) ([10.245.244.66]) by fmviesa005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2026 07:28:48 -0800 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Cc: intel-xe@lists.freedesktop.org Subject: [PATCH 09/19] drm/i915/overlay: Extract i915_overlay_setup() Date: Wed, 18 Feb 2026 17:27:56 +0200 Message-ID: <20260218152806.18885-10-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260218152806.18885-1-ville.syrjala@linux.intel.com> References: <20260218152806.18885-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Organization: Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs Bertel Jungin Aukio 5, 02600 Espoo, Finland Content-Transfer-Encoding: 8bit X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" From: Ville Syrjälä Pull the gem/gt related bits of the overlay setup into a separate function (i915_overlay_setup()) that will eventually move to the i915 side of the parent vs. display driver split. For now we'll also have to pass in the overlay struct, but that will disappear once the i915 vs. display split is completed. Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_overlay.c | 40 ++++++++++++-------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c index 8c1ed540a8e3..5683bddf33b4 100644 --- a/drivers/gpu/drm/i915/display/intel_overlay.c +++ b/drivers/gpu/drm/i915/display/intel_overlay.c @@ -1430,39 +1430,49 @@ static int get_registers(struct intel_overlay *overlay, bool use_phys) return err; } -void intel_overlay_setup(struct intel_display *display) +static int i915_overlay_setup(struct drm_device *drm, + struct intel_overlay *overlay, + bool needs_physical) { - struct drm_i915_private *dev_priv = to_i915(display->drm); - struct intel_overlay *overlay; + struct drm_i915_private *dev_priv = to_i915(drm); struct intel_engine_cs *engine; - int ret; - - if (!HAS_OVERLAY(display)) - return; engine = to_gt(dev_priv)->engine[RCS0]; if (!engine || !engine->kernel_context) + return -ENOENT; + + overlay->context = engine->kernel_context; + + i915_active_init(&overlay->last_flip, + NULL, intel_overlay_last_flip_retire, 0); + + return get_registers(overlay, needs_physical); +} + +void intel_overlay_setup(struct intel_display *display) +{ + struct intel_overlay *overlay; + int ret; + + if (!HAS_OVERLAY(display)) return; overlay = kzalloc(sizeof(*overlay), GFP_KERNEL); if (!overlay) return; + ret = i915_overlay_setup(display->drm, overlay, + OVERLAY_NEEDS_PHYSICAL(display)); + if (ret) + goto out_free; + overlay->display = display; - overlay->context = engine->kernel_context; overlay->color_key = 0x0101fe; overlay->color_key_enabled = true; overlay->brightness = -19; overlay->contrast = 75; overlay->saturation = 146; - i915_active_init(&overlay->last_flip, - NULL, intel_overlay_last_flip_retire, 0); - - ret = get_registers(overlay, OVERLAY_NEEDS_PHYSICAL(display)); - if (ret) - goto out_free; - memset_io(overlay->regs, 0, sizeof(struct overlay_registers)); update_polyphase_filter(overlay->regs); update_reg_attrs(overlay, overlay->regs); -- 2.52.0