From patchwork Mon Mar 20 09:17:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 95482 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp847809qgd; Mon, 20 Mar 2017 02:18:50 -0700 (PDT) X-Received: by 10.99.125.27 with SMTP id y27mr5797135pgc.79.1490001530681; Mon, 20 Mar 2017 02:18:50 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z23si16813207pll.235.2017.03.20.02.18.50; Mon, 20 Mar 2017 02:18:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753351AbdCTJSh (ORCPT + 4 others); Mon, 20 Mar 2017 05:18:37 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:20882 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752966AbdCTJSf (ORCPT ); Mon, 20 Mar 2017 05:18:35 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0ON300244WIQWM90@mailout2.w1.samsung.com>; Mon, 20 Mar 2017 09:18:26 +0000 (GMT) Received: from eusmges1.samsung.com (unknown [203.254.199.239]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170320091826eucas1p1bc25e0e709ef6809d006a979ee08f17b~tjHm82k0W0397203972eucas1p1n; Mon, 20 Mar 2017 09:18:26 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1.samsung.com (EUCPMTA) with SMTP id 46.96.16908.46E9FC85; Mon, 20 Mar 2017 09:18:28 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170320091825eucas1p19e9ee18390287c275c9406144e88eef8~tjHmUYmeo0396803968eucas1p1o; Mon, 20 Mar 2017 09:18:25 +0000 (GMT) X-AuditID: cbfec7ef-f79d26d00000420c-b9-58cf9e644648 Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 6A.07.06687.BCE9FC85; Mon, 20 Mar 2017 09:20:11 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0ON300FS3WICYHA0@eusync4.samsung.com>; Mon, 20 Mar 2017 09:18:25 +0000 (GMT) From: Marek Szyprowski To: iommu@lists.linux-foundation.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , Joerg Roedel , Krzysztof Kozlowski , Andrzej Hajda , Bartlomiej Zolnierkiewicz , stable@vger.kernel.org Subject: [PATCH 2/2] iommu/exynos: Workaround FLPD cache flush issues for SYSMMU v5 Date: Mon, 20 Mar 2017 10:17:57 +0100 Message-id: <1490001484-18890-2-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1490001484-18890-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFIsWRmVeSWpSXmKPExsWy7djPc7op885HGMyaoW1xa905VouNM9az WizYb23ROXsDu8X580Bixvl9TBZrj9xlt1iw8RGjA4fHk4PzmDw2repk85h8YzmjR9+WVYwe nzfJBbBGcdmkpOZklqUW6dslcGUcb1Yq+MldcXrZLrYGxgauLkZODgkBE4m5+zpYIWwxiQv3 1rN1MXJxCAksY5Q4+OY+C4TzmVHi3rt5zDAdG29fZQexwaoubquCKGpgkpg5azYLSIJNwFCi 620XG4gtIuAucf3Pc7BJzALvGSXadnYCdXNwCAuESpw7CDaIRUBV4vqFiWC9vAIeEmt397FB LJOTOHlsMth5nAKeEg8+nWcFmSMh8J1N4u+O2YwgcyQEZCU2HYA6zkViUvcyFghbWOLV8S3s ELaMRGfHQSYIu59RoqlVG8KewShx7i0vhG0tcfj4RbBdzAJ8EpO2TWeGGM8r0dEmBGF6SCzp EIaodpT4/OsRE8Trcxgldm+fxTyBUWYBI8MqRpHU0uLc9NRiQ73ixNzi0rx0veT83E2MwBg+ /e/4+x2MT5tDDjEKcDAq8fDeuHQuQog1say4MvcQowQHs5II746E8xFCvCmJlVWpRfnxRaU5 qcWHGKU5WJTEefcuuBIuJJCeWJKanZpakFoEk2Xi4JRqYJSY67y5davB4vOrZj7NTz3f8axv 85W7zelL1ql3M67Qeqih29nZsj37nY2vSbDVyYDpHbKnGM7NS7rqFDptd8em+T8PVP9fUveB 90C3V7xdxLxnX3OFc3l59rd9/h35pLdAZNIiLcXF2xLMG7TNnK9v4AncevRB/Rz1WzdfW09c /iolutDS+asSS3FGoqEWc1FxIgDEODKh3QIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNLMWRmVeSWpSXmKPExsVy+t/xa7qn552PMLh0TMTi1rpzrBYbZ6xn tViw39qic/YGdovz54HEjPP7mCzWHrnLbrFg4yNGBw6PJwfnMXlsWtXJ5jH5xnJGj74tqxg9 Pm+SC2CNcrPJSE1MSS1SSM1Lzk/JzEu3VQoNcdO1UFLIS8xNtVWK0PUNCVJSKEvMKQXyjAzQ gINzgHuwkr5dglvG8Walgp/cFaeX7WJrYGzg6mLk5JAQMJHYePsqO4QtJnHh3no2EFtIYAmj xOsDgl2MXEB2E5PEvR8rmEASbAKGEl1vu8CKRATcJa7/ec4CUsQs8J5R4saC/UAOB4ewQKjE uYNgQ1kEVCWuX5jIAmLzCnhIrN3dxwaxTE7i5LHJrCA2p4CnxINP51khFntIXDs/j3ECI+8C RoZVjCKppcW56bnFhnrFibnFpXnpesn5uZsYgQG97djPzTsYL20MPsQowMGoxMNrcPVchBBr YllxZe4hRgkOZiUR3h0J5yOEeFMSK6tSi/Lji0pzUosPMZoCHTWRWUo0OR8YbXkl8YYmhuaW hkbGFhbmRkZK4rwlH66ECwmkJ5akZqemFqQWwfQxcXBKNTDyXAxy5dxfP8Ffddq6t/M/mbw4 K17h6bciuNp/WiZ7+I0/mWdNmWPeyLlOZJtRL2f7iCf46vuFOzqulcj6Hns+jYE9wPNqZIuB l1mis9jmVsU79e+uq2d8Ujxk8yf+out0rihxLvW/Nd+UPSZNb1VcblA8e+ZTr05RFTcbjUnn bfh3uTBvMlViKc5INNRiLipOBAC8UDJGfgIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170320091825eucas1p19e9ee18390287c275c9406144e88eef8 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1B?= =?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1BSam?= =?utf-8?q?sung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170320091825eucas1p19e9ee18390287c275c9406144e88eef8 X-RootMTR: 20170320091825eucas1p19e9ee18390287c275c9406144e88eef8 References: <1490001484-18890-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org For some unknown reasons, in some cases, FLPD cache invalidation doesn't work properly with SYSMMU v5 controllers found in Exynos5433 SoCs. This can be observed by a firmware crash during initialization phase of MFC video decoder available in the mentioned SoCs when IOMMU support is enabled. To workaround this issue perform a full TLB/FLPD invalidation in case of replacing any first level page descriptors in case of SYSMMU v5. Fixes: 740a01eee9ada ("iommu/exynos: Add support for v5 SYSMMU") CC: stable@vger.kernel.org # v4.10+ Signed-off-by: Marek Szyprowski --- The mentioned commit has been merged to v4.6, but this fix applies only for v4.10+ kernels due to other changes in the surrounding code. --- drivers/iommu/exynos-iommu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index 32d43f1994e4..c01bfcdb2383 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -513,7 +513,10 @@ static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data, if (data->active && data->version >= MAKE_MMU_VER(3, 3)) { clk_enable(data->clk_master); if (sysmmu_block(data)) { - __sysmmu_tlb_invalidate_entry(data, iova, 1); + if (data->version >= MAKE_MMU_VER(5, 0)) + __sysmmu_tlb_invalidate(data); + else + __sysmmu_tlb_invalidate_entry(data, iova, 1); sysmmu_unblock(data); } clk_disable(data->clk_master);