From: Ville Syrjala <ville.syrjala@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org,
Andrzej Hajda <andrzej.hajda@intel.com>,
Paz Zcharya <pazz@chromium.org>
Subject: [PATCH v4 12/16] drm/i915: Simplify intel_initial_plane_config() calling convention
Date: Sat, 3 Feb 2024 00:43:36 +0200 [thread overview]
Message-ID: <20240202224340.30647-13-ville.syrjala@linux.intel.com> (raw)
In-Reply-To: <20240202224340.30647-1-ville.syrjala@linux.intel.com>
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
There's no reason the caller of intel_initial_plane_config() should
have to loop over the CRTCs. Pull the loop into the function to
make life simpler for the caller.
v2: "fix" xe
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Tested-by: Paz Zcharya <pazz@chromium.org>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
.../drm/i915/display/intel_display_driver.c | 7 +---
.../drm/i915/display/intel_plane_initial.c | 40 +++++++++++--------
.../drm/i915/display/intel_plane_initial.h | 4 +-
drivers/gpu/drm/xe/display/xe_plane_initial.c | 40 +++++++++++--------
4 files changed, 49 insertions(+), 42 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index ecf9cb74734b..f3fe1743243b 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -415,7 +415,6 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
{
struct drm_device *dev = &i915->drm;
enum pipe pipe;
- struct intel_crtc *crtc;
int ret;
if (!HAS_DISPLAY(i915))
@@ -467,11 +466,7 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
intel_acpi_assign_connector_fwnodes(i915);
drm_modeset_unlock_all(dev);
- for_each_intel_crtc(dev, crtc) {
- if (!to_intel_crtc_state(crtc->base.state)->uapi.active)
- continue;
- intel_crtc_initial_plane_config(crtc);
- }
+ intel_initial_plane_config(i915);
/*
* Make sure hardware watermarks really match the state we read out.
diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
index 78bff6181ceb..b7e12b60d68b 100644
--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
@@ -357,25 +357,31 @@ static void plane_config_fini(struct intel_initial_plane_config *plane_config)
i915_vma_put(plane_config->vma);
}
-void intel_crtc_initial_plane_config(struct intel_crtc *crtc)
+void intel_initial_plane_config(struct drm_i915_private *i915)
{
- struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
- struct intel_initial_plane_config plane_config = {};
+ struct intel_crtc *crtc;
- /*
- * Note that reserving the BIOS fb up front prevents us
- * from stuffing other stolen allocations like the ring
- * on top. This prevents some ugliness at boot time, and
- * can even allow for smooth boot transitions if the BIOS
- * fb is large enough for the active pipe configuration.
- */
- dev_priv->display.funcs.display->get_initial_plane_config(crtc, &plane_config);
+ for_each_intel_crtc(&i915->drm, crtc) {
+ struct intel_initial_plane_config plane_config = {};
- /*
- * If the fb is shared between multiple heads, we'll
- * just get the first one.
- */
- intel_find_initial_plane_obj(crtc, &plane_config);
+ if (!to_intel_crtc_state(crtc->base.state)->uapi.active)
+ continue;
- plane_config_fini(&plane_config);
+ /*
+ * Note that reserving the BIOS fb up front prevents us
+ * from stuffing other stolen allocations like the ring
+ * on top. This prevents some ugliness at boot time, and
+ * can even allow for smooth boot transitions if the BIOS
+ * fb is large enough for the active pipe configuration.
+ */
+ i915->display.funcs.display->get_initial_plane_config(crtc, &plane_config);
+
+ /*
+ * If the fb is shared between multiple heads, we'll
+ * just get the first one.
+ */
+ intel_find_initial_plane_obj(crtc, &plane_config);
+
+ plane_config_fini(&plane_config);
+ }
}
diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.h b/drivers/gpu/drm/i915/display/intel_plane_initial.h
index c7e35ab3182b..64ab95239cd4 100644
--- a/drivers/gpu/drm/i915/display/intel_plane_initial.h
+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.h
@@ -6,8 +6,8 @@
#ifndef __INTEL_PLANE_INITIAL_H__
#define __INTEL_PLANE_INITIAL_H__
-struct intel_crtc;
+struct drm_i915_private;
-void intel_crtc_initial_plane_config(struct intel_crtc *crtc);
+void intel_initial_plane_config(struct drm_i915_private *i915);
#endif
diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c
index ccf83c12b545..0aaf4eb2cdc5 100644
--- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
+++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
@@ -267,25 +267,31 @@ static void plane_config_fini(struct intel_initial_plane_config *plane_config)
}
}
-void intel_crtc_initial_plane_config(struct intel_crtc *crtc)
+void intel_initial_plane_config(struct drm_i915_private *i915)
{
- struct xe_device *xe = to_xe_device(crtc->base.dev);
- struct intel_initial_plane_config plane_config = {};
+ struct intel_crtc *crtc;
- /*
- * Note that reserving the BIOS fb up front prevents us
- * from stuffing other stolen allocations like the ring
- * on top. This prevents some ugliness at boot time, and
- * can even allow for smooth boot transitions if the BIOS
- * fb is large enough for the active pipe configuration.
- */
- xe->display.funcs.display->get_initial_plane_config(crtc, &plane_config);
+ for_each_intel_crtc(&i915->drm, crtc) {
+ struct intel_initial_plane_config plane_config = {};
- /*
- * If the fb is shared between multiple heads, we'll
- * just get the first one.
- */
- intel_find_initial_plane_obj(crtc, &plane_config);
+ if (!to_intel_crtc_state(crtc->base.state)->uapi.active)
+ continue;
- plane_config_fini(&plane_config);
+ /*
+ * Note that reserving the BIOS fb up front prevents us
+ * from stuffing other stolen allocations like the ring
+ * on top. This prevents some ugliness at boot time, and
+ * can even allow for smooth boot transitions if the BIOS
+ * fb is large enough for the active pipe configuration.
+ */
+ i915->display.funcs.display->get_initial_plane_config(crtc, &plane_config);
+
+ /*
+ * If the fb is shared between multiple heads, we'll
+ * just get the first one.
+ */
+ intel_find_initial_plane_obj(crtc, &plane_config);
+
+ plane_config_fini(&plane_config);
+ }
}
--
2.43.0
next prev parent reply other threads:[~2024-02-02 22:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-02 22:43 [PATCH v4 00/16] drm/i915: (stolen) memory region related fixes Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 01/16] drm/i915: Use struct resource for memory region IO as well Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 02/16] drm/i915: Print memory region info during probe Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 03/16] drm/i915: Remove ad-hoc lmem/stolen debugs Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 04/16] drm/i915: Bypass LMEMBAR/GTTMMADR for MTL stolen memory access Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 05/16] drm/i915: Disable the "binder" Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 06/16] drm/i915: Rename the DSM/GSM registers Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 07/16] drm/i915: Fix PTE decode during initial plane readout Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 08/16] drm/i915: Fix region start " Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 09/16] drm/i915: Fix MTL " Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 10/16] drm/i915: s/phys_base/dma_addr/ Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 11/16] drm/i915: Split the smem and lmem plane readout apart Ville Syrjala
2024-02-02 22:43 ` Ville Syrjala [this message]
2024-02-02 22:43 ` [PATCH v4 13/16] drm/i915/fbdev: Fix smem_start for LMEMBAR stolen objects Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 14/16] drm/i915: Tweak BIOS fb reuse check Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 15/16] drm/i915: Try to relocate the BIOS fb to the start of ggtt Ville Syrjala
2024-02-02 22:43 ` [PATCH v4 16/16] drm/i915: Annotate more of the BIOS fb takeover failure paths Ville Syrjala
2024-02-03 0:33 ` ✓ CI.Patch_applied: success for drm/i915: (stolen) memory region related fixes Patchwork
2024-02-03 0:33 ` ✗ CI.checkpatch: warning " Patchwork
2024-02-03 0:34 ` ✓ CI.KUnit: success " Patchwork
2024-02-03 0:41 ` ✓ CI.Build: " Patchwork
2024-02-03 0:42 ` ✓ CI.Hooks: " Patchwork
2024-02-03 0:43 ` ✗ CI.checksparse: warning " Patchwork
2024-02-03 1:07 ` ✓ CI.BAT: success " Patchwork
2024-02-05 11:38 ` [PATCH v4 00/16] " Jani Nikula
2024-02-05 14:16 ` Lucas De Marchi
2024-02-05 14:37 ` Saarinen, Jani
2024-02-07 0:12 ` Ville Syrjälä
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240202224340.30647-13-ville.syrjala@linux.intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=andrzej.hajda@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=pazz@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox