From patchwork Mon Nov 26 06:05:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhenyu Wang X-Patchwork-Id: 10697603 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1918E15A7 for ; Mon, 26 Nov 2018 06:06:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0627C29800 for ; Mon, 26 Nov 2018 06:06:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ECC9E2980B; Mon, 26 Nov 2018 06:06:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3F6F029800 for ; Mon, 26 Nov 2018 06:06:09 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 864866E2C4; Mon, 26 Nov 2018 06:06:07 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id D09276E2C4; Mon, 26 Nov 2018 06:06:06 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Nov 2018 22:06:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,280,1539673200"; d="scan'208";a="89170731" Received: from debian-nuc.sh.intel.com ([10.239.159.41]) by fmsmga008.fm.intel.com with ESMTP; 25 Nov 2018 22:06:05 -0800 From: Zhenyu Wang To: joonas.lahtinen@linux.intel.com Date: Mon, 26 Nov 2018 14:05:53 +0800 Message-Id: <20181126060554.16481-2-zhenyuw@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181126060554.16481-1-zhenyuw@linux.intel.com> References: <20181126060554.16481-1-zhenyuw@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [RFC PATCH v2 1/2] drm/i915: Export current required functions for GVT X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP This trys to export all required i915 functions for GVT. Signed-off-by: Zhenyu Wang --- 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"