From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: Hardware 3D acceleration doesn't work anymore with the latest git kernel Date: Mon, 27 Nov 2017 13:20:49 +0100 Message-ID: <26dffb11-dfa1-16b7-f5b4-839b80b3b356@amd.com> References: <59c9a5ab-704f-5772-369a-6d72283a1d03@xenosoft.de> <348d480d-aa6c-4861-8db7-7dc09fed9c27@xenosoft.de> <7dc2fc90-269e-6b11-d9e4-a4de0dc1fd44@daenzer.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------4B8984E79F1B87EF3BBD6E0C" Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0058.outbound.protection.outlook.com [104.47.34.58]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA40189320 for ; Mon, 27 Nov 2017 12:21:05 +0000 (UTC) In-Reply-To: <7dc2fc90-269e-6b11-d9e4-a4de0dc1fd44@daenzer.net> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?Q?Michel_D=c3=a4nzer?= , Tom St Denis Cc: Maling list - DRI developers , Christian Zigotzky List-Id: dri-devel@lists.freedesktop.org This is a multi-part message in MIME format. --------------4B8984E79F1B87EF3BBD6E0C Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Am 27.11.2017 um 13:02 schrieb Michel Dänzer: > [SNIP] > I thought I did above... > > Commit f7871fd19389c5f64f625a4389675d0740f0dfe4 made the radeon driver > rely on ttm_populate_and_map_pages, which is implemented as: > > static inline int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt) > { > return -ENOMEM; > } > > when neither CONFIG_SWIOTLB nor CONFIG_INTEL_IOMMU is enabled. > Previously, the driver worked fine without either of those enabled. Ah! Sorry my fault. It looks like I incorrectly explained to Tom how to handle the config options. Please take a look at the attached patch, it should fix the issue (going to send that one out separately once more). Regards, Christian. --------------4B8984E79F1B87EF3BBD6E0C Content-Type: text/x-patch; name="0001-drm-ttm-fix-populate_and_map-functions-once-more.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename*0="0001-drm-ttm-fix-populate_and_map-functions-once-more.patch" >>From a53c4574a06ee5a46d8e5b8fb10623c76513fe5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Mon, 27 Nov 2017 13:12:35 +0100 Subject: [PATCH] drm/ttm: fix populate_and_map() functions once more MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts "drm/ttm: Fix configuration error around populate_and_map() functions". This fix has gone into the wrong direction. Those helpers should be available even when neither CONFIG_INTEL_IOMMU nor CONFIG_SWIOTLB are set. Signed-off-by: Christian König --- drivers/gpu/drm/ttm/ttm_page_alloc.c | 2 -- include/drm/ttm/ttm_page_alloc.h | 32 ++++++++++---------------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c index 1543532b8740..c82d94cbbabc 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c @@ -1096,7 +1096,6 @@ void ttm_pool_unpopulate(struct ttm_tt *ttm) } EXPORT_SYMBOL(ttm_pool_unpopulate); -#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU) int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt) { unsigned i, j; @@ -1167,7 +1166,6 @@ void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt) ttm_pool_unpopulate(&tt->ttm); } EXPORT_SYMBOL(ttm_unmap_and_unpopulate_pages); -#endif int ttm_page_alloc_debugfs(struct seq_file *m, void *data) { diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h index 38a2b4770c35..593811362a91 100644 --- a/include/drm/ttm/ttm_page_alloc.h +++ b/include/drm/ttm/ttm_page_alloc.h @@ -59,11 +59,20 @@ int ttm_pool_populate(struct ttm_tt *ttm); void ttm_pool_unpopulate(struct ttm_tt *ttm); /** + * Populates and DMA maps pages to fullfil a ttm_dma_populate() request + */ +int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt); + +/** + * Unpopulates and DMA unmaps pages as part of a + * ttm_dma_unpopulate() request */ +void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt); + +/** * Output the state of pools to debugfs file */ int ttm_page_alloc_debugfs(struct seq_file *m, void *data); - #if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU) /** * Initialize pool allocator. @@ -83,17 +92,6 @@ int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data); int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev); void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev); - -/** - * Populates and DMA maps pages to fullfil a ttm_dma_populate() request - */ -int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt); - -/** - * Unpopulates and DMA unmaps pages as part of a - * ttm_dma_unpopulate() request */ -void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt); - #else static inline int ttm_dma_page_alloc_init(struct ttm_mem_global *glob, unsigned max_pages) @@ -116,16 +114,6 @@ static inline void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev) { } - -static inline int ttm_populate_and_map_pages(struct device *dev, struct ttm_dma_tt *tt) -{ - return -ENOMEM; -} - -static inline void ttm_unmap_and_unpopulate_pages(struct device *dev, struct ttm_dma_tt *tt) -{ -} - #endif #endif -- 2.11.0 --------------4B8984E79F1B87EF3BBD6E0C Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --------------4B8984E79F1B87EF3BBD6E0C--