From: Ville Syrjälä <[email protected]>

When doing the BIOS FB takeover let's look up the appropriate
memory region first. If it doesn't exist there's not much point
in doing the PTE read/etc either.

Signed-off-by: Ville Syrjälä <[email protected]>
---
 .../drm/i915/display/intel_plane_initial.c    | 36 +++++++++----------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c 
b/drivers/gpu/drm/i915/display/intel_plane_initial.c
index 5f75ef4ba3b1..d522da7000ff 100644
--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
@@ -75,6 +75,15 @@ initial_plane_phys_lmem(struct intel_display *display,
        dma_addr_t dma_addr;
        u32 base;
 
+       mem_type = initial_plane_memory_type(i915);
+       mem = intel_memory_region_by_type(i915, mem_type);
+       if (!mem) {
+               drm_dbg_kms(display->drm,
+                           "Initial plane memory region (type %s) not 
initialized\n",
+                           intel_memory_type_str(mem_type));
+               return false;
+       }
+
        base = round_down(plane_config->base, I915_GTT_MIN_ALIGNMENT);
 
        dma_addr = intel_ggtt_read_entry(&ggtt->vm, base, &is_present, 
&is_local);
@@ -91,15 +100,6 @@ initial_plane_phys_lmem(struct intel_display *display,
                return false;
        }
 
-       mem_type = initial_plane_memory_type(i915);
-       mem = intel_memory_region_by_type(i915, mem_type);
-       if (!mem) {
-               drm_dbg_kms(display->drm,
-                           "Initial plane memory region (type %s) not 
initialized\n",
-                           intel_memory_type_str(mem_type));
-               return false;
-       }
-
        /*
         * On lmem we don't currently expect this to
         * ever be placed in the stolen portion.
@@ -133,6 +133,15 @@ initial_plane_phys_smem(struct intel_display *display,
        dma_addr_t dma_addr;
        u32 base;
 
+       mem_type = initial_plane_memory_type(i915);
+       mem = intel_memory_region_by_type(i915, mem_type);
+       if (!mem) {
+               drm_dbg_kms(display->drm,
+                           "Initial plane memory region (type %s) not 
initialized\n",
+                           intel_memory_type_str(mem_type));
+               return false;
+       }
+
        base = round_down(plane_config->base, I915_GTT_MIN_ALIGNMENT);
 
        dma_addr = intel_ggtt_read_entry(&ggtt->vm, base, &is_present, 
&is_local);
@@ -149,15 +158,6 @@ initial_plane_phys_smem(struct intel_display *display,
                return false;
        }
 
-       mem_type = initial_plane_memory_type(i915);
-       mem = intel_memory_region_by_type(i915, mem_type);
-       if (!mem) {
-               drm_dbg_kms(display->drm,
-                           "Initial plane memory region (type %s) not 
initialized\n",
-                           intel_memory_type_str(mem_type));
-               return false;
-       }
-
        if (dma_addr < mem->region.start || dma_addr > mem->region.end) {
                drm_err(display->drm,
                        "Initial plane programming using invalid range, 
dma_addr=%pa (%s [%pa-%pa])\n",
-- 
2.45.3

Reply via email to