From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2688C43381 for ; Tue, 12 Mar 2019 17:59:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B8A832177E for ; Tue, 12 Mar 2019 17:59:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552413583; bh=244Fua93XWB1optCXZhSQPIfmvwcYhUXzkcDy8Cw8Q4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ZL2KMSpHbK/dnUiuAMueGkNFmH65L4uICeEMCazsjsOeAYUEo1zVFl8xiIjfyNXLq 0XOwPnwCAya4nHblsjcJDOBgi935lJzlffUsJ3DUvuu82qcL1Zn01/rWJtQSixDZOe BdPaUeqOxmyMNjr45snVVFqkXD4aMTUydlg0BpSI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728134AbfCLR7m (ORCPT ); Tue, 12 Mar 2019 13:59:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:50568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727682AbfCLRNa (ORCPT ); Tue, 12 Mar 2019 13:13:30 -0400 Received: from localhost (unknown [104.133.8.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3EF1F21741; Tue, 12 Mar 2019 17:13:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410809; bh=244Fua93XWB1optCXZhSQPIfmvwcYhUXzkcDy8Cw8Q4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vIZUOlZQCIJUHTMp2v/SgQo5CHr7ZMiOF+nDQ+HmYW+1Hdjn8XXObABq21fco9X53 TyFUfEBOpgkndcKB8g+A+XXRgYPAMB0Xh909GXSft1MQ6Uf0cumoMgVwlM2TxIdENU TgB0tYoRS98v8CP6tYZYUmrm+XPMe5Z/RlwOwAjw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Christian Koenig , Alex Deucher , David Zhou , Huang Rui , Junwei Zhang , Michel Daenzer , David Airlie , Daniel Vetter , Maarten Lankhorst , Maxime Ripard , Sean Paul , Michael Ellerman , Benjamin Herrenschmidt , Will Deacon , Christoph Hellwig , Robin Murphy , amd-gfx list , dri-devel , Carsten Haitzler , Ard Biesheuvel , Sasha Levin Subject: [PATCH 4.20 160/171] drm: disable uncached DMA optimization for ARM and arm64 Date: Tue, 12 Mar 2019 10:09:00 -0700 Message-Id: <20190312170401.202933174@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170347.868927101@linuxfoundation.org> References: <20190312170347.868927101@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit e02f5c1bb2283cfcee68f2f0feddcc06150f13aa ] The DRM driver stack is designed to work with cache coherent devices only, but permits an optimization to be enabled in some cases, where for some buffers, both the CPU and the GPU use uncached mappings, removing the need for DMA snooping and allocation in the CPU caches. The use of uncached GPU mappings relies on the correct implementation of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU will use cached mappings nonetheless. On x86 platforms, this does not seem to matter, as uncached CPU mappings will snoop the caches in any case. However, on ARM and arm64, enabling this optimization on a platform where NoSnoop is ignored results in loss of coherency, which breaks correct operation of the device. Since we have no way of detecting whether NoSnoop works or not, just disable this optimization entirely for ARM and arm64. Cc: Christian Koenig Cc: Alex Deucher Cc: David Zhou Cc: Huang Rui Cc: Junwei Zhang Cc: Michel Daenzer Cc: David Airlie Cc: Daniel Vetter Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: Michael Ellerman Cc: Benjamin Herrenschmidt Cc: Will Deacon Cc: Christoph Hellwig Cc: Robin Murphy Cc: amd-gfx list Cc: dri-devel Reported-by: Carsten Haitzler Signed-off-by: Ard Biesheuvel Reviewed-by: Christian König Reviewed-by: Alex Deucher Link: https://patchwork.kernel.org/patch/10778815/ Signed-off-by: Christian König Signed-off-by: Sasha Levin --- include/drm/drm_cache.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/drm/drm_cache.h b/include/drm/drm_cache.h index bfe1639df02d..97fc498dc767 100644 --- a/include/drm/drm_cache.h +++ b/include/drm/drm_cache.h @@ -47,6 +47,24 @@ static inline bool drm_arch_can_wc_memory(void) return false; #elif defined(CONFIG_MIPS) && defined(CONFIG_CPU_LOONGSON3) return false; +#elif defined(CONFIG_ARM) || defined(CONFIG_ARM64) + /* + * The DRM driver stack is designed to work with cache coherent devices + * only, but permits an optimization to be enabled in some cases, where + * for some buffers, both the CPU and the GPU use uncached mappings, + * removing the need for DMA snooping and allocation in the CPU caches. + * + * The use of uncached GPU mappings relies on the correct implementation + * of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU + * will use cached mappings nonetheless. On x86 platforms, this does not + * seem to matter, as uncached CPU mappings will snoop the caches in any + * case. However, on ARM and arm64, enabling this optimization on a + * platform where NoSnoop is ignored results in loss of coherency, which + * breaks correct operation of the device. Since we have no way of + * detecting whether NoSnoop works or not, just disable this + * optimization entirely for ARM and arm64. + */ + return false; #else return true; #endif -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Subject: [PATCH 4.20 160/171] drm: disable uncached DMA optimization for ARM and arm64 Date: Tue, 12 Mar 2019 10:09:00 -0700 Message-ID: <20190312170401.202933174@linuxfoundation.org> References: <20190312170347.868927101@linuxfoundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190312170347.868927101@linuxfoundation.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: Maxime Ripard , Will Deacon , dri-devel , Huang Rui , Sasha Levin , Carsten Haitzler , Michael Ellerman , amd-gfx list , Christoph Hellwig , David Airlie , Junwei Zhang , Sean Paul , Ard Biesheuvel , Greg Kroah-Hartman , Michel Daenzer , stable@vger.kernel.org, Alex Deucher , Robin Murphy , Christian Koenig List-Id: dri-devel@lists.freedesktop.org NC4yMC1zdGFibGUgcmV2aWV3IHBhdGNoLiAgSWYgYW55b25lIGhhcyBhbnkgb2JqZWN0aW9ucywg cGxlYXNlIGxldCBtZSBrbm93LgoKLS0tLS0tLS0tLS0tLS0tLS0tCgpbIFVwc3RyZWFtIGNvbW1p dCBlMDJmNWMxYmIyMjgzY2ZjZWU2OGYyZjBmZWRkY2MwNjE1MGYxM2FhIF0KClRoZSBEUk0gZHJp dmVyIHN0YWNrIGlzIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBjYWNoZSBjb2hlcmVudCBkZXZpY2Vz Cm9ubHksIGJ1dCBwZXJtaXRzIGFuIG9wdGltaXphdGlvbiB0byBiZSBlbmFibGVkIGluIHNvbWUg Y2FzZXMsIHdoZXJlCmZvciBzb21lIGJ1ZmZlcnMsIGJvdGggdGhlIENQVSBhbmQgdGhlIEdQVSB1 c2UgdW5jYWNoZWQgbWFwcGluZ3MsCnJlbW92aW5nIHRoZSBuZWVkIGZvciBETUEgc25vb3Bpbmcg YW5kIGFsbG9jYXRpb24gaW4gdGhlIENQVSBjYWNoZXMuCgpUaGUgdXNlIG9mIHVuY2FjaGVkIEdQ VSBtYXBwaW5ncyByZWxpZXMgb24gdGhlIGNvcnJlY3QgaW1wbGVtZW50YXRpb24Kb2YgdGhlIFBD SWUgTm9Tbm9vcCBUTFAgYXR0cmlidXRlIGJ5IHRoZSBwbGF0Zm9ybSwgb3RoZXJ3aXNlIHRoZSBH UFUKd2lsbCB1c2UgY2FjaGVkIG1hcHBpbmdzIG5vbmV0aGVsZXNzLiBPbiB4ODYgcGxhdGZvcm1z LCB0aGlzIGRvZXMgbm90CnNlZW0gdG8gbWF0dGVyLCBhcyB1bmNhY2hlZCBDUFUgbWFwcGluZ3Mg d2lsbCBzbm9vcCB0aGUgY2FjaGVzIGluIGFueQpjYXNlLiBIb3dldmVyLCBvbiBBUk0gYW5kIGFy bTY0LCBlbmFibGluZyB0aGlzIG9wdGltaXphdGlvbiBvbiBhCnBsYXRmb3JtIHdoZXJlIE5vU25v b3AgaXMgaWdub3JlZCByZXN1bHRzIGluIGxvc3Mgb2YgY29oZXJlbmN5LCB3aGljaApicmVha3Mg Y29ycmVjdCBvcGVyYXRpb24gb2YgdGhlIGRldmljZS4gU2luY2Ugd2UgaGF2ZSBubyB3YXkgb2YK ZGV0ZWN0aW5nIHdoZXRoZXIgTm9Tbm9vcCB3b3JrcyBvciBub3QsIGp1c3QgZGlzYWJsZSB0aGlz Cm9wdGltaXphdGlvbiBlbnRpcmVseSBmb3IgQVJNIGFuZCBhcm02NC4KCkNjOiBDaHJpc3RpYW4g S29lbmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkNjOiBBbGV4IERldWNoZXIgPGFsZXhh bmRlci5kZXVjaGVyQGFtZC5jb20+CkNjOiBEYXZpZCBaaG91IDxEYXZpZDEuWmhvdUBhbWQuY29t PgpDYzogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4KQ2M6IEp1bndlaSBaaGFuZyA8SmVy cnkuWmhhbmdAYW1kLmNvbT4KQ2M6IE1pY2hlbCBEYWVuemVyIDxtaWNoZWwuZGFlbnplckBhbWQu Y29tPgpDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9v dGxpbi5jb20+CkNjOiBTZWFuIFBhdWwgPHNlYW5AcG9vcmx5LnJ1bj4KQ2M6IE1pY2hhZWwgRWxs ZXJtYW4gPG1wZUBlbGxlcm1hbi5pZC5hdT4KQ2M6IEJlbmphbWluIEhlcnJlbnNjaG1pZHQgPGJl bmhAa2VybmVsLmNyYXNoaW5nLm9yZz4KQ2M6IFdpbGwgRGVhY29uIDx3aWxsLmRlYWNvbkBhcm0u Y29tPgpDYzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBpbmZyYWRlYWQub3JnPgpDYzogUm9iaW4g TXVycGh5IDxyb2Jpbi5tdXJwaHlAYXJtLmNvbT4KQ2M6IGFtZC1nZnggbGlzdCA8YW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmc+CkNjOiBkcmktZGV2ZWwgPGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmc+ClJlcG9ydGVkLWJ5OiBDYXJzdGVuIEhhaXR6bGVyIDxDYXJzdGVuLkhhaXR6 bGVyQGFybS5jb20+ClNpZ25lZC1vZmYtYnk6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZl bEBsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtv ZW5pZ0BhbWQuY29tPgpSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hl ckBhbWQuY29tPgpMaW5rOiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwNzc4 ODE1LwpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFt ZC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0t CiBpbmNsdWRlL2RybS9kcm1fY2FjaGUuaCB8IDE4ICsrKysrKysrKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f Y2FjaGUuaCBiL2luY2x1ZGUvZHJtL2RybV9jYWNoZS5oCmluZGV4IGJmZTE2MzlkZjAyZC4uOTdm YzQ5OGRjNzY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY2FjaGUuaAorKysgYi9pbmNs dWRlL2RybS9kcm1fY2FjaGUuaApAQCAtNDcsNiArNDcsMjQgQEAgc3RhdGljIGlubGluZSBib29s IGRybV9hcmNoX2Nhbl93Y19tZW1vcnkodm9pZCkKIAlyZXR1cm4gZmFsc2U7CiAjZWxpZiBkZWZp bmVkKENPTkZJR19NSVBTKSAmJiBkZWZpbmVkKENPTkZJR19DUFVfTE9PTkdTT04zKQogCXJldHVy biBmYWxzZTsKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSTSkgfHwgZGVmaW5lZChDT05GSUdfQVJN NjQpCisJLyoKKwkgKiBUaGUgRFJNIGRyaXZlciBzdGFjayBpcyBkZXNpZ25lZCB0byB3b3JrIHdp dGggY2FjaGUgY29oZXJlbnQgZGV2aWNlcworCSAqIG9ubHksIGJ1dCBwZXJtaXRzIGFuIG9wdGlt aXphdGlvbiB0byBiZSBlbmFibGVkIGluIHNvbWUgY2FzZXMsIHdoZXJlCisJICogZm9yIHNvbWUg YnVmZmVycywgYm90aCB0aGUgQ1BVIGFuZCB0aGUgR1BVIHVzZSB1bmNhY2hlZCBtYXBwaW5ncywK KwkgKiByZW1vdmluZyB0aGUgbmVlZCBmb3IgRE1BIHNub29waW5nIGFuZCBhbGxvY2F0aW9uIGlu IHRoZSBDUFUgY2FjaGVzLgorCSAqCisJICogVGhlIHVzZSBvZiB1bmNhY2hlZCBHUFUgbWFwcGlu Z3MgcmVsaWVzIG9uIHRoZSBjb3JyZWN0IGltcGxlbWVudGF0aW9uCisJICogb2YgdGhlIFBDSWUg Tm9Tbm9vcCBUTFAgYXR0cmlidXRlIGJ5IHRoZSBwbGF0Zm9ybSwgb3RoZXJ3aXNlIHRoZSBHUFUK KwkgKiB3aWxsIHVzZSBjYWNoZWQgbWFwcGluZ3Mgbm9uZXRoZWxlc3MuIE9uIHg4NiBwbGF0Zm9y bXMsIHRoaXMgZG9lcyBub3QKKwkgKiBzZWVtIHRvIG1hdHRlciwgYXMgdW5jYWNoZWQgQ1BVIG1h cHBpbmdzIHdpbGwgc25vb3AgdGhlIGNhY2hlcyBpbiBhbnkKKwkgKiBjYXNlLiBIb3dldmVyLCBv biBBUk0gYW5kIGFybTY0LCBlbmFibGluZyB0aGlzIG9wdGltaXphdGlvbiBvbiBhCisJICogcGxh dGZvcm0gd2hlcmUgTm9Tbm9vcCBpcyBpZ25vcmVkIHJlc3VsdHMgaW4gbG9zcyBvZiBjb2hlcmVu Y3ksIHdoaWNoCisJICogYnJlYWtzIGNvcnJlY3Qgb3BlcmF0aW9uIG9mIHRoZSBkZXZpY2UuIFNp bmNlIHdlIGhhdmUgbm8gd2F5IG9mCisJICogZGV0ZWN0aW5nIHdoZXRoZXIgTm9Tbm9vcCB3b3Jr cyBvciBub3QsIGp1c3QgZGlzYWJsZSB0aGlzCisJICogb3B0aW1pemF0aW9uIGVudGlyZWx5IGZv ciBBUk0gYW5kIGFybTY0LgorCSAqLworCXJldHVybiBmYWxzZTsKICNlbHNlCiAJcmV0dXJuIHRy dWU7CiAjZW5kaWYKLS0gCjIuMTkuMQoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=