Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12d79d78 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin
Browse files

drm/i915: Make GEM object create and create from data take dev_priv



Makes all GEM object constructors consistent.

v2: Fix compilation in GVT code.

Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> (v1)
parent 187685cb
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1602,7 +1602,7 @@ static int perform_bb_shadow(struct parser_exec_state *s)
		return -ENOMEM;

	entry_obj->obj =
		i915_gem_object_create(&(s->vgpu->gvt->dev_priv->drm),
		i915_gem_object_create(s->vgpu->gvt->dev_priv,
				       roundup(bb_size, PAGE_SIZE));
	if (IS_ERR(entry_obj->obj)) {
		ret = PTR_ERR(entry_obj->obj);
@@ -2665,14 +2665,13 @@ int intel_gvt_scan_and_shadow_workload(struct intel_vgpu_workload *workload)

static int shadow_indirect_ctx(struct intel_shadow_wa_ctx *wa_ctx)
{
	struct drm_device *dev = &wa_ctx->workload->vgpu->gvt->dev_priv->drm;
	int ctx_size = wa_ctx->indirect_ctx.size;
	unsigned long guest_gma = wa_ctx->indirect_ctx.guest_gma;
	struct drm_i915_gem_object *obj;
	int ret = 0;
	void *map;

	obj = i915_gem_object_create(dev,
	obj = i915_gem_object_create(wa_ctx->workload->vgpu->gvt->dev_priv,
				     roundup(ctx_size + CACHELINE_BYTES,
					     PAGE_SIZE));
	if (IS_ERR(obj))
+5 −4
Original line number Diff line number Diff line
@@ -2985,10 +2985,11 @@ void *i915_gem_object_alloc(struct drm_i915_private *dev_priv);
void i915_gem_object_free(struct drm_i915_gem_object *obj);
void i915_gem_object_init(struct drm_i915_gem_object *obj,
			 const struct drm_i915_gem_object_ops *ops);
struct drm_i915_gem_object *i915_gem_object_create(struct drm_device *dev,
						   u64 size);
struct drm_i915_gem_object *i915_gem_object_create_from_data(
		struct drm_device *dev, const void *data, size_t size);
struct drm_i915_gem_object *
i915_gem_object_create(struct drm_i915_private *dev_priv, u64 size);
struct drm_i915_gem_object *
i915_gem_object_create_from_data(struct drm_i915_private *dev_priv,
				 const void *data, size_t size);
void i915_gem_close_object(struct drm_gem_object *gem, struct drm_file *file);
void i915_gem_free_object(struct drm_gem_object *obj);

+10 −10
Original line number Diff line number Diff line
@@ -635,7 +635,7 @@ void i915_gem_object_free(struct drm_i915_gem_object *obj)

static int
i915_gem_create(struct drm_file *file,
		struct drm_device *dev,
		struct drm_i915_private *dev_priv,
		uint64_t size,
		uint32_t *handle_p)
{
@@ -648,7 +648,7 @@ i915_gem_create(struct drm_file *file,
		return -EINVAL;

	/* Allocate the new object */
	obj = i915_gem_object_create(dev, size);
	obj = i915_gem_object_create(dev_priv, size);
	if (IS_ERR(obj))
		return PTR_ERR(obj);

@@ -670,7 +670,7 @@ i915_gem_dumb_create(struct drm_file *file,
	/* have to work out size/pitch and return them */
	args->pitch = ALIGN(args->width * DIV_ROUND_UP(args->bpp, 8), 64);
	args->size = args->pitch * args->height;
	return i915_gem_create(file, dev,
	return i915_gem_create(file, to_i915(dev),
			       args->size, &args->handle);
}

@@ -684,11 +684,12 @@ int
i915_gem_create_ioctl(struct drm_device *dev, void *data,
		      struct drm_file *file)
{
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct drm_i915_gem_create *args = data;

	i915_gem_flush_free_objects(to_i915(dev));
	i915_gem_flush_free_objects(dev_priv);

	return i915_gem_create(file, dev,
	return i915_gem_create(file, dev_priv,
			       args->size, &args->handle);
}

@@ -3970,9 +3971,8 @@ static const struct drm_i915_gem_object_ops i915_gem_object_ops = {
	(sizeof(x) > sizeof(T) && (x) >> (sizeof(T) * BITS_PER_BYTE))

struct drm_i915_gem_object *
i915_gem_object_create(struct drm_device *dev, u64 size)
i915_gem_object_create(struct drm_i915_private *dev_priv, u64 size)
{
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct drm_i915_gem_object *obj;
	struct address_space *mapping;
	gfp_t mask;
@@ -3993,7 +3993,7 @@ i915_gem_object_create(struct drm_device *dev, u64 size)
	if (obj == NULL)
		return ERR_PTR(-ENOMEM);

	ret = drm_gem_object_init(dev, &obj->base, size);
	ret = drm_gem_object_init(&dev_priv->drm, &obj->base, size);
	if (ret)
		goto fail;

@@ -4749,7 +4749,7 @@ void i915_gem_track_fb(struct drm_i915_gem_object *old,

/* Allocate a new GEM object and fill it with the supplied data */
struct drm_i915_gem_object *
i915_gem_object_create_from_data(struct drm_device *dev,
i915_gem_object_create_from_data(struct drm_i915_private *dev_priv,
			         const void *data, size_t size)
{
	struct drm_i915_gem_object *obj;
@@ -4757,7 +4757,7 @@ i915_gem_object_create_from_data(struct drm_device *dev,
	size_t bytes;
	int ret;

	obj = i915_gem_object_create(dev, round_up(size, PAGE_SIZE));
	obj = i915_gem_object_create(dev_priv, round_up(size, PAGE_SIZE));
	if (IS_ERR(obj))
		return obj;

+3 −2
Original line number Diff line number Diff line
@@ -169,12 +169,13 @@ void i915_gem_context_free(struct kref *ctx_ref)
static struct drm_i915_gem_object *
alloc_context_obj(struct drm_device *dev, u64 size)
{
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct drm_i915_gem_object *obj;
	int ret;

	lockdep_assert_held(&dev->struct_mutex);

	obj = i915_gem_object_create(dev, size);
	obj = i915_gem_object_create(dev_priv, size);
	if (IS_ERR(obj))
		return obj;

@@ -193,7 +194,7 @@ alloc_context_obj(struct drm_device *dev, u64 size)
	 * This is only applicable for Ivy Bridge devices since
	 * later platforms don't have L3 control bits in the PTE.
	 */
	if (IS_IVYBRIDGE(to_i915(dev))) {
	if (IS_IVYBRIDGE(dev_priv)) {
		ret = i915_gem_object_set_cache_level(obj, I915_CACHE_L3_LLC);
		/* Failure shouldn't ever happen this early */
		if (WARN_ON(ret)) {
+1 −1
Original line number Diff line number Diff line
@@ -574,7 +574,7 @@ static struct i915_vma *guc_allocate_vma(struct intel_guc *guc, u32 size)
	struct i915_vma *vma;
	int ret;

	obj = i915_gem_object_create(&dev_priv->drm, size);
	obj = i915_gem_object_create(dev_priv, size);
	if (IS_ERR(obj))
		return ERR_CAST(obj);

Loading