On Sat, 19 Feb 2022, Ramalingam C ramalingam.c@intel.com wrote:
diff --git a/drivers/gpu/drm/i915/gt/intel_gtt.h b/drivers/gpu/drm/i915/gt/intel_gtt.h index 8073438b67c8..6cd518a3277c 100644 --- a/drivers/gpu/drm/i915/gt/intel_gtt.h +++ b/drivers/gpu/drm/i915/gt/intel_gtt.h @@ -29,6 +29,8 @@ #include "i915_selftest.h" #include "i915_vma_resource.h" #include "i915_vma_types.h" +#include "i915_params.h"
Do you need this? Avoid includes from includes.
+#include "intel_memory_region.h"
#define I915_GFP_ALLOW_FAIL (GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN)
@@ -223,6 +225,7 @@ struct i915_address_space { struct device *dma; u64 total; /* size addr space maps (ex. 2GB for ggtt) */ u64 reserved; /* size addr space reserved */
u64 min_alignment[INTEL_MEMORY_STOLEN_LOCAL + 1];
unsigned int bind_async_flags;
@@ -384,6 +387,25 @@ i915_vm_has_scratch_64K(struct i915_address_space *vm) return vm->scratch_order == get_order(I915_GTT_PAGE_SIZE_64K); }
+static inline u64 i915_vm_min_alignment(struct i915_address_space *vm,
enum intel_memory_type type)
+{
- /* avoid INTEL_MEMORY_MOCK overflow */
- if ((int)type >= ARRAY_SIZE(vm->min_alignment))
type = INTEL_MEMORY_SYSTEM;
- return vm->min_alignment[type];
+}
+static inline u64 i915_vm_obj_min_alignment(struct i915_address_space *vm,
struct drm_i915_gem_object *obj)
+{
- struct intel_memory_region *mr = READ_ONCE(obj->mm.region);
- enum intel_memory_type type = mr ? mr->type : INTEL_MEMORY_SYSTEM;
- return i915_vm_min_alignment(vm, type);
+}
Is it performance critical that these two functions are inlines, and warrant including more headers from headers, complicating the interdependent mess that the gem/gt includes already are?
BR, Jani.