All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhenyu Wang <zhenyuw@linux.intel.com>
To: joonas.lahtinen@linux.intel.com
Cc: intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org
Subject: [RFC PATCH v2 1/2] drm/i915: Export current required functions for GVT
Date: Mon, 26 Nov 2018 14:05:53 +0800	[thread overview]
Message-ID: <20181126060554.16481-2-zhenyuw@linux.intel.com> (raw)
In-Reply-To: <20181126060554.16481-1-zhenyuw@linux.intel.com>

This trys to export all required i915 functions for GVT.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c           | 11 +++++++++++
 drivers/gpu/drm/i915/i915_gem_context.c   |  2 ++
 drivers/gpu/drm/i915/i915_gem_dmabuf.c    |  1 +
 drivers/gpu/drm/i915/i915_gem_fence_reg.c |  2 ++
 drivers/gpu/drm/i915/i915_gem_gtt.c       |  1 +
 drivers/gpu/drm/i915/i915_request.c       |  3 +++
 drivers/gpu/drm/i915/i915_vma.c           |  2 ++
 drivers/gpu/drm/i915/intel_ringbuffer.c   |  1 +
 drivers/gpu/drm/i915/intel_runtime_pm.c   |  2 ++
 drivers/gpu/drm/i915/intel_uncore.c       |  3 +++
 10 files changed, 28 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c55b1f75c980..9af6e9810f85 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -701,6 +701,7 @@ void *i915_gem_object_alloc(struct drm_i915_private *dev_priv)
 {
 	return kmem_cache_zalloc(dev_priv->objects, GFP_KERNEL);
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_alloc);
 
 void i915_gem_object_free(struct drm_i915_gem_object *obj)
 {
@@ -1029,6 +1030,7 @@ int i915_gem_obj_prepare_shmem_write(struct drm_i915_gem_object *obj,
 	i915_gem_object_unpin_pages(obj);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(i915_gem_obj_prepare_shmem_write);
 
 static void
 shmem_clflush_swizzled_range(char *addr, unsigned long length,
@@ -2764,6 +2766,7 @@ void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj,
 	list_add(&obj->mm.link, &i915->mm.unbound_list);
 	spin_unlock(&i915->mm.obj_lock);
 }
+EXPORT_SYMBOL_GPL(__i915_gem_object_set_pages);
 
 static int ____i915_gem_object_get_pages(struct drm_i915_gem_object *obj)
 {
@@ -2930,6 +2933,7 @@ void *i915_gem_object_pin_map(struct drm_i915_gem_object *obj,
 	ptr = ERR_PTR(ret);
 	goto out_unlock;
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_pin_map);
 
 static int
 i915_gem_object_pwrite_gtt(struct drm_i915_gem_object *obj,
@@ -4041,6 +4045,7 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write)
 	i915_gem_object_unpin_pages(obj);
 	return 0;
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_set_to_gtt_domain);
 
 /**
  * Changes the cache-level of an object across all VMA.
@@ -4406,6 +4411,7 @@ i915_gem_object_set_to_cpu_domain(struct drm_i915_gem_object *obj, bool write)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_set_to_cpu_domain);
 
 /* Throttle our rendering by waiting until the ring has completed our requests
  * emitted over 20 msec ago.
@@ -4535,6 +4541,7 @@ i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
 
 	return vma;
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_ggtt_pin);
 
 static __always_inline unsigned int __busy_read_flag(unsigned int id)
 {
@@ -4758,6 +4765,7 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
 
 	i915_gem_info_add_obj(to_i915(obj->base.dev), obj->base.size);
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_init);
 
 static const struct drm_i915_gem_object_ops i915_gem_object_ops = {
 	.flags = I915_GEM_OBJECT_HAS_STRUCT_PAGE |
@@ -4864,6 +4872,7 @@ i915_gem_object_create(struct drm_i915_private *dev_priv, u64 size)
 	i915_gem_object_free(obj);
 	return ERR_PTR(ret);
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_create);
 
 static bool discard_backing_storage(struct drm_i915_gem_object *obj)
 {
@@ -5061,6 +5070,7 @@ void __i915_gem_object_release_unless_active(struct drm_i915_gem_object *obj)
 	else
 		i915_gem_object_put(obj);
 }
+EXPORT_SYMBOL_GPL(__i915_gem_object_release_unless_active);
 
 void i915_gem_sanitize(struct drm_i915_private *i915)
 {
@@ -6168,6 +6178,7 @@ i915_gem_object_get_page(struct drm_i915_gem_object *obj, unsigned int n)
 	sg = i915_gem_object_get_sg(obj, n, &offset);
 	return nth_page(sg_page(sg), offset);
 }
+EXPORT_SYMBOL_GPL(i915_gem_object_get_page);
 
 /* Like i915_gem_object_get_page(), but mark the returned page dirty */
 struct page *
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index b97963db0287..212b8d176d25 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -274,6 +274,7 @@ void i915_gem_context_release(struct kref *ref)
 	if (llist_add(&ctx->free_link, &i915->contexts.free_list))
 		queue_work(i915->wq, &i915->contexts.free_work);
 }
+EXPORT_SYMBOL_GPL(i915_gem_context_release);
 
 static void context_close(struct i915_gem_context *ctx)
 {
@@ -473,6 +474,7 @@ i915_gem_context_create_gvt(struct drm_device *dev)
 	mutex_unlock(&dev->struct_mutex);
 	return ctx;
 }
+EXPORT_SYMBOL_GPL(i915_gem_context_create_gvt);
 
 static void
 destroy_kernel_context(struct i915_gem_context **ctxp)
diff --git a/drivers/gpu/drm/i915/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/i915_gem_dmabuf.c
index 82e2ca17a441..ac98b094220c 100644
--- a/drivers/gpu/drm/i915/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/i915_gem_dmabuf.c
@@ -244,6 +244,7 @@ struct dma_buf *i915_gem_prime_export(struct drm_device *dev,
 
 	return drm_gem_dmabuf_export(dev, &exp_info);
 }
+EXPORT_SYMBOL_GPL(i915_gem_prime_export);
 
 static int i915_gem_object_get_pages_dmabuf(struct drm_i915_gem_object *obj)
 {
diff --git a/drivers/gpu/drm/i915/i915_gem_fence_reg.c b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
index d548ac05ccd7..21b79c1f61d0 100644
--- a/drivers/gpu/drm/i915/i915_gem_fence_reg.c
+++ b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
@@ -420,6 +420,7 @@ i915_reserve_fence(struct drm_i915_private *dev_priv)
 	list_del(&fence->link);
 	return fence;
 }
+EXPORT_SYMBOL_GPL(i915_reserve_fence);
 
 /**
  * i915_unreserve_fence - Reclaim a reserved fence
@@ -433,6 +434,7 @@ void i915_unreserve_fence(struct drm_i915_fence_reg *fence)
 
 	list_add(&fence->link, &fence->i915->mm.fence_list);
 }
+EXPORT_SYMBOL_GPL(i915_unreserve_fence);
 
 /**
  * i915_gem_revoke_fences - revoke fence state
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index add1fe7aeb93..75dd6ebf517e 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -4040,6 +4040,7 @@ int i915_gem_gtt_insert(struct i915_address_space *vm,
 					   size, alignment, color,
 					   start, end, DRM_MM_INSERT_EVICT);
 }
+EXPORT_SYMBOL_GPL(i915_gem_gtt_insert);
 
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
 #include "selftests/mock_gtt.c"
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index 71107540581d..0048fd9bb899 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -749,6 +749,7 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx)
 	intel_context_unpin(ce);
 	return ERR_PTR(ret);
 }
+EXPORT_SYMBOL_GPL(i915_request_alloc);
 
 static int
 i915_request_await_request(struct i915_request *to, struct i915_request *from)
@@ -1073,6 +1074,7 @@ void i915_request_add(struct i915_request *request)
 	if (prev && i915_request_completed(prev))
 		i915_request_retire_upto(prev);
 }
+EXPORT_SYMBOL_GPL(i915_request_add);
 
 static unsigned long local_clock_us(unsigned int *cpu)
 {
@@ -1339,6 +1341,7 @@ long i915_request_wait(struct i915_request *rq,
 
 	return timeout;
 }
+EXPORT_SYMBOL_GPL(i915_request_wait);
 
 static void ring_retire_requests(struct intel_ring *ring)
 {
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index 5b4d78cdb4ca..704f18a8ecd3 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -783,6 +783,7 @@ void i915_vma_close(struct i915_vma *vma)
 	 */
 	list_add_tail(&vma->closed_link, &vma->vm->i915->gt.closed_vma);
 }
+EXPORT_SYMBOL_GPL(i915_vma_close);
 
 void i915_vma_reopen(struct i915_vma *vma)
 {
@@ -1028,6 +1029,7 @@ int i915_vma_move_to_active(struct i915_vma *vma,
 	export_fence(vma, rq, flags);
 	return 0;
 }
+EXPORT_SYMBOL_GPL(i915_vma_move_to_active);
 
 int i915_vma_unbind(struct i915_vma *vma)
 {
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 87eebc13c0d8..c0d8693f1110 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1957,6 +1957,7 @@ u32 *intel_ring_begin(struct i915_request *rq, unsigned int num_dwords)
 
 	return cs;
 }
+EXPORT_SYMBOL_GPL(intel_ring_begin);
 
 /* Align the ring tail to a cacheline boundary */
 int intel_ring_cacheline_align(struct i915_request *rq)
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 1c2de9b69a19..90a15e8d2afa 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -4004,6 +4004,7 @@ void intel_runtime_pm_get(struct drm_i915_private *dev_priv)
 	atomic_inc(&dev_priv->runtime_pm.wakeref_count);
 	assert_rpm_wakelock_held(dev_priv);
 }
+EXPORT_SYMBOL_GPL(intel_runtime_pm_get);
 
 /**
  * intel_runtime_pm_get_if_in_use - grab a runtime pm reference if device in use
@@ -4087,6 +4088,7 @@ void intel_runtime_pm_put(struct drm_i915_private *dev_priv)
 	pm_runtime_mark_last_busy(kdev);
 	pm_runtime_put_autosuspend(kdev);
 }
+EXPORT_SYMBOL_GPL(intel_runtime_pm_put);
 
 /**
  * intel_runtime_pm_enable - enable runtime pm
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 9289515108c3..35293ac7dff9 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -644,6 +644,7 @@ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
 	__intel_uncore_forcewake_get(dev_priv, fw_domains);
 	spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
 }
+EXPORT_SYMBOL_GPL(intel_uncore_forcewake_get);
 
 /**
  * intel_uncore_forcewake_user_get - claim forcewake on behalf of userspace
@@ -756,6 +757,7 @@ void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv,
 	__intel_uncore_forcewake_put(dev_priv, fw_domains);
 	spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
 }
+EXPORT_SYMBOL_GPL(intel_uncore_forcewake_put);
 
 /**
  * intel_uncore_forcewake_put__locked - grab forcewake domain references
@@ -2388,6 +2390,7 @@ intel_uncore_forcewake_for_reg(struct drm_i915_private *dev_priv,
 
 	return fw_domains;
 }
+EXPORT_SYMBOL_GPL(intel_uncore_forcewake_for_reg);
 
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
 #include "selftests/mock_uncore.c"
-- 
2.19.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-11-26  6:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-26  6:05 [RFC PATCH v2 0/2] GVT device model split Zhenyu Wang
2018-11-26  6:05 ` Zhenyu Wang [this message]
2018-12-20  9:56   ` [RFC PATCH v2 1/2] drm/i915: Export current required functions for GVT Joonas Lahtinen
2018-11-26  6:05 ` [RFC PATCH v2 2/2] drm/i915: Move GVT device model into separate module Zhenyu Wang
2018-12-20  9:58   ` Joonas Lahtinen
2018-11-26  6:23 ` ✗ Fi.CI.BAT: failure for GVT device model split Patchwork

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=20181126060554.16481-2-zhenyuw@linux.intel.com \
    --to=zhenyuw@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=joonas.lahtinen@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.