Message ID | 20220928061918.6340-4-niranjana.vishwanathapura@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/vm_bind: Add VM_BIND functionality | expand |
On 28/09/2022 07:19, Niranjana Vishwanathapura wrote: > Expose i915_gem_object_max_page_size() function non-static > which will be used by the vm_bind feature. > > Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> > Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> > --- > drivers/gpu/drm/i915/gem/i915_gem_create.c | 19 ++++++++++++++----- > drivers/gpu/drm/i915/gem/i915_gem_object.h | 2 ++ > 2 files changed, 16 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_create.c b/drivers/gpu/drm/i915/gem/i915_gem_create.c > index 33673fe7ee0a..4aa7b5582b8e 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_create.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_create.c > @@ -15,10 +15,19 @@ > #include "i915_trace.h" > #include "i915_user_extensions.h" > > -static u32 object_max_page_size(struct intel_memory_region **placements, > - unsigned int n_placements) > +/** > + * i915_gem_object_max_page_size() - max of min_page_size of the regions > + * @placements: list of regions > + * @n_placements: number of the placements > + * > + * Calculates the max of the min_page_size of a list of placements passed in. > + * > + * Return: max of the min_page_size "max of the min_page_size, or I915_GTT_PAGE_SIZE_4K if zero placements." Acked-by: Matthew Auld <matthew.auld@intel.com> > + */ > +u32 i915_gem_object_max_page_size(struct intel_memory_region **placements, > + unsigned int n_placements) > { > - u32 max_page_size = 0; > + u32 max_page_size = I915_GTT_PAGE_SIZE_4K; > int i; > > for (i = 0; i < n_placements; i++) { > @@ -28,7 +37,6 @@ static u32 object_max_page_size(struct intel_memory_region **placements, > max_page_size = max_t(u32, max_page_size, mr->min_page_size); > } > > - GEM_BUG_ON(!max_page_size); > return max_page_size; > } > > @@ -99,7 +107,8 @@ __i915_gem_object_create_user_ext(struct drm_i915_private *i915, u64 size, > > i915_gem_flush_free_objects(i915); > > - size = round_up(size, object_max_page_size(placements, n_placements)); > + size = round_up(size, i915_gem_object_max_page_size(placements, > + n_placements)); > if (size == 0) > return ERR_PTR(-EINVAL); > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h > index a3b7551a57fc..d53d01b1860a 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h > @@ -47,6 +47,8 @@ static inline bool i915_gem_object_size_2big(u64 size) > } > > void i915_gem_init__objects(struct drm_i915_private *i915); > +u32 i915_gem_object_max_page_size(struct intel_memory_region **placements, > + unsigned int n_placements); > > void i915_objects_module_exit(void); > int i915_objects_module_init(void);
On Wed, Sep 28, 2022 at 06:40:01PM +0100, Matthew Auld wrote: >On 28/09/2022 07:19, Niranjana Vishwanathapura wrote: >>Expose i915_gem_object_max_page_size() function non-static >>which will be used by the vm_bind feature. >> >>Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> >>Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> >>--- >> drivers/gpu/drm/i915/gem/i915_gem_create.c | 19 ++++++++++++++----- >> drivers/gpu/drm/i915/gem/i915_gem_object.h | 2 ++ >> 2 files changed, 16 insertions(+), 5 deletions(-) >> >>diff --git a/drivers/gpu/drm/i915/gem/i915_gem_create.c b/drivers/gpu/drm/i915/gem/i915_gem_create.c >>index 33673fe7ee0a..4aa7b5582b8e 100644 >>--- a/drivers/gpu/drm/i915/gem/i915_gem_create.c >>+++ b/drivers/gpu/drm/i915/gem/i915_gem_create.c >>@@ -15,10 +15,19 @@ >> #include "i915_trace.h" >> #include "i915_user_extensions.h" >>-static u32 object_max_page_size(struct intel_memory_region **placements, >>- unsigned int n_placements) >>+/** >>+ * i915_gem_object_max_page_size() - max of min_page_size of the regions >>+ * @placements: list of regions >>+ * @n_placements: number of the placements >>+ * >>+ * Calculates the max of the min_page_size of a list of placements passed in. >>+ * >>+ * Return: max of the min_page_size > >"max of the min_page_size, or I915_GTT_PAGE_SIZE_4K if zero placements." > ok, will update. Regards, Niranjana >Acked-by: Matthew Auld <matthew.auld@intel.com> > >>+ */ >>+u32 i915_gem_object_max_page_size(struct intel_memory_region **placements, >>+ unsigned int n_placements) >> { >>- u32 max_page_size = 0; >>+ u32 max_page_size = I915_GTT_PAGE_SIZE_4K; >> int i; >> for (i = 0; i < n_placements; i++) { >>@@ -28,7 +37,6 @@ static u32 object_max_page_size(struct intel_memory_region **placements, >> max_page_size = max_t(u32, max_page_size, mr->min_page_size); >> } >>- GEM_BUG_ON(!max_page_size); >> return max_page_size; >> } >>@@ -99,7 +107,8 @@ __i915_gem_object_create_user_ext(struct drm_i915_private *i915, u64 size, >> i915_gem_flush_free_objects(i915); >>- size = round_up(size, object_max_page_size(placements, n_placements)); >>+ size = round_up(size, i915_gem_object_max_page_size(placements, >>+ n_placements)); >> if (size == 0) >> return ERR_PTR(-EINVAL); >>diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h >>index a3b7551a57fc..d53d01b1860a 100644 >>--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h >>+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h >>@@ -47,6 +47,8 @@ static inline bool i915_gem_object_size_2big(u64 size) >> } >> void i915_gem_init__objects(struct drm_i915_private *i915); >>+u32 i915_gem_object_max_page_size(struct intel_memory_region **placements, >>+ unsigned int n_placements); >> void i915_objects_module_exit(void); >> int i915_objects_module_init(void);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_create.c b/drivers/gpu/drm/i915/gem/i915_gem_create.c index 33673fe7ee0a..4aa7b5582b8e 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_create.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_create.c @@ -15,10 +15,19 @@ #include "i915_trace.h" #include "i915_user_extensions.h" -static u32 object_max_page_size(struct intel_memory_region **placements, - unsigned int n_placements) +/** + * i915_gem_object_max_page_size() - max of min_page_size of the regions + * @placements: list of regions + * @n_placements: number of the placements + * + * Calculates the max of the min_page_size of a list of placements passed in. + * + * Return: max of the min_page_size + */ +u32 i915_gem_object_max_page_size(struct intel_memory_region **placements, + unsigned int n_placements) { - u32 max_page_size = 0; + u32 max_page_size = I915_GTT_PAGE_SIZE_4K; int i; for (i = 0; i < n_placements; i++) { @@ -28,7 +37,6 @@ static u32 object_max_page_size(struct intel_memory_region **placements, max_page_size = max_t(u32, max_page_size, mr->min_page_size); } - GEM_BUG_ON(!max_page_size); return max_page_size; } @@ -99,7 +107,8 @@ __i915_gem_object_create_user_ext(struct drm_i915_private *i915, u64 size, i915_gem_flush_free_objects(i915); - size = round_up(size, object_max_page_size(placements, n_placements)); + size = round_up(size, i915_gem_object_max_page_size(placements, + n_placements)); if (size == 0) return ERR_PTR(-EINVAL); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index a3b7551a57fc..d53d01b1860a 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -47,6 +47,8 @@ static inline bool i915_gem_object_size_2big(u64 size) } void i915_gem_init__objects(struct drm_i915_private *i915); +u32 i915_gem_object_max_page_size(struct intel_memory_region **placements, + unsigned int n_placements); void i915_objects_module_exit(void); int i915_objects_module_init(void);