From patchwork Mon Nov 14 10:08:07 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 82042 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp932646qge; Mon, 14 Nov 2016 02:10:54 -0800 (PST) X-Received: by 10.98.64.195 with SMTP id f64mr34380085pfd.16.1479118254600; Mon, 14 Nov 2016 02:10:54 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o20si21634477pgn.236.2016.11.14.02.10.54; Mon, 14 Nov 2016 02:10:54 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754803AbcKNKKs (ORCPT + 26 others); Mon, 14 Nov 2016 05:10:48 -0500 Received: from mailout3.w1.samsung.com ([210.118.77.13]:25066 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753718AbcKNKJP (ORCPT ); Mon, 14 Nov 2016 05:09:15 -0500 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OGM007BBMVBO010@mailout3.w1.samsung.com>; Mon, 14 Nov 2016 10:09:11 +0000 (GMT) Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20161114100910eucas1p1681e90a2f59200ca2c5b1ffe1181f055~G4h8Nf2Uv1167211672eucas1p1W; Mon, 14 Nov 2016 10:09:10 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges5.samsung.com (EUCPMTA) with SMTP id FB.4F.19540.64D89285; Mon, 14 Nov 2016 10:09:10 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20161114100909eucas1p1bc6b64109f463f12879b2e3eccb76434~G4h7lCl-e1588215882eucas1p1F; Mon, 14 Nov 2016 10:09:09 +0000 (GMT) X-AuditID: cbfec7f5-f79ce6d000004c54-d0-58298d461301 Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id B1.B3.07726.94D89285; Mon, 14 Nov 2016 10:09:13 +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 <0OGM00IDHMV2LBA0@eusync4.samsung.com>; Mon, 14 Nov 2016 10:09:09 +0000 (GMT) From: Marek Szyprowski To: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-samsung-soc@vger.kernel.org, Joerg Roedel Cc: Marek Szyprowski , Inki Dae , Kukjin Kim , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , "Rafael J. Wysocki" , Mark Brown , "Luis R. Rodriguez" , Greg Kroah-Hartman , Tomeu Vizoso , Lukas Wunner , Kevin Hilman , Tobias Jakobi , Tomasz Figa Subject: [PATCH v7 2/7] iommu/exynos: Remove dead code Date: Mon, 14 Nov 2016 11:08:07 +0100 Message-id: <1479118092-1365-3-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1479118092-1365-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWSa0gUURTHuzszO7NbE8MqdlHzw6alRpZQcssIhaj5EOg3l/C16aSSq7Kj khHkA3VdfKVI6zPDNFwzTW3zha6mq2ZpWorhI8x3ZZmmYg9Jd/Tb73D+5/8/93IoTPaQsKbC IqI5dYQyXC6W4gbT1uCpKxlOijMtTVboua6GQHnTs2KUVFYjRjmfsnFU2u6O0gprSZQ18xVD c/UzIjQ4uFO+by4So7WMLoB0g20itLhgg6q7Jkk0lj0H0Jv+YQKlVK0QSN/8F6DM6mGxhwU7 21EiYhsnHwO2qWCSZOv0aWK2vfgpyeaOPQHstolkG0ZScTazQQ/YtTo7VpdqILwPXpdeDObC w2I59elLgdLQqkYdEWVyuD1Q0kfGg1U7LZBQkDkLC5KWSIGt4LupGrEWSCkZUw7go61JYrch Y9YAHF+23x9IrMjDBVEFgPnGWpFQxItg73ot2FWJGVeoXdaarSyZMgB7C0fNKowx4nDp/gym BRRlwbjBuQLzHjjjAIdb87FdppmrUNM2IBLi7GCfKde8hoRhYfHaqjkaMuskbF/oJHd9IHMU 1hkxQX8ZJn/swQW2gF96GvbeZgvTNB17nlkAJiafFFgH4MAyLbA7fNUzZM7CmMMwx/AAE+xp qEmRCRIWfu/T7kV5woJvy0D4oUIAiyrpbGBbCg7ogSUXw6tCOP6cC69U8TERIS5Bkao6sHM2 /ds9642g3HShEzAUkB+iNZGOChmhjOXjVJ0AUpjckj6W7qSQ0cHKuDucOjJAHRPO8Z3AhsLl R+jW0g8+MiZEGc3d4rgoTr3fFVES63hwT+mpQccbflbqAoImfA36E4Eev69Xt5TLF117r9nf 2F79YVk05fnrvLPfzWlSMuTf3fXZLXmkjfcDC6GpG/XzxdMvRv8Rq/7PltI2yjr+OBq8Mllr mlW0G197JziqfO5OS96OGn37VxJEPmxFie9LLCW9297LaTxGsTm/KZ2Q43yo0tUZU/PK/y5C JmgyAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIIsWRmVeSWpSXmKPExsVy+t/xa7qevZoRBgdWWVtsnLGe1WLqwyds Fs2L17NZTLo/gcViwX5ri87ZG9gt+h+/ZrZ4uvkxk8X580Du5V1z2Cw+9x5htJhxfh+TxYvn 0hZrj9xlt7gx4SmjxZnTl1gt2lZ/YLVYtesPo0Xf2ktsDsIeTw7OY/LYcXcJo8fOWXfZPTat 6mTz2D93DbvH5BvLGT3+HWP32HK1ncWjb8sqRo/Pm+Q8ZrRvYw3gjnKzyUhNTEktUkjNS85P ycxLt1UKDXHTtVBSyEvMTbVVitD1DQlSUihLzCkF8owM0ICDc4B7sJK+XYJbxuodM1gLjqlW nJt3kr2B8ZNcFyMnh4SAiUTTsqksELaYxIV769m6GLk4hASWMEq8//qTHcJpYpK4e2IeE0gV m4ChRNfbLrAqEYHFjBINh6YwgjjMAsdYJBb3HGTuYuTgEBYwk3g6C2wFi4CqxKU9M5lBbF4B d4mOfeeYINbJSZw8NpkVxOYU8JCY+/kT2BlCQDVXL+9nnsDIu4CRYRWjSGppcW56brGhXnFi bnFpXrpecn7uJkZg9G079nPzDsZLG4MPMQpwMCrx8Hbka0QIsSaWFVfmHmKU4GBWEuFV7tGM EOJNSaysSi3Kjy8qzUktPsRoCnTURGYp0eR8YGLIK4k3NDE0tzQ0MrawMDcyUhLnLflwJVxI ID2xJDU7NbUgtQimj4mDU6qBsclq3jOXgvLFpf4vtXxKBdKcp9//9L87OvrjJ+/Uc4WV+lVe qpa6SdNi6n6IHtbXM3IqCY/oDW685SUWOHsvS84CZd78OfFXLi3ObpvzwvGJn5OtybFdsodO vLFnX1x968wctm7dq4677gXwvjuwWP6YS/LsjJPv/TlWnRTxa3zjdD9wwZ8XSizFGYmGWsxF xYkABALHSNQCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161114100909eucas1p1bc6b64109f463f12879b2e3eccb76434 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20161114100909eucas1p1bc6b64109f463f12879b2e3eccb76434 X-RootMTR: 20161114100909eucas1p1bc6b64109f463f12879b2e3eccb76434 References: <1479118092-1365-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org __sysmmu_enable/disable functions were designed to do ref-count based operations, but current code always calls them only once, so the code for checking the conditions and invalid conditions can be simply removed without any influence to the driver operation. Signed-off-by: Marek Szyprowski --- drivers/iommu/exynos-iommu.c | 65 ++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 48 deletions(-) -- 1.9.1 diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index 8ba0d60..4056228 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -460,9 +460,6 @@ static bool __sysmmu_disable(struct sysmmu_drvdata *data) __sysmmu_disable_nocount(data); dev_dbg(data->sysmmu, "Disabled\n"); - } else { - dev_dbg(data->sysmmu, "%d times left to disable\n", - data->activations); } spin_unlock_irqrestore(&data->lock, flags); @@ -508,29 +505,18 @@ static void __sysmmu_enable_nocount(struct sysmmu_drvdata *data) static int __sysmmu_enable(struct sysmmu_drvdata *data, phys_addr_t pgtable, struct exynos_iommu_domain *domain) { - int ret = 0; unsigned long flags; spin_lock_irqsave(&data->lock, flags); if (set_sysmmu_active(data)) { data->pgtable = pgtable; data->domain = domain; - __sysmmu_enable_nocount(data); - dev_dbg(data->sysmmu, "Enabled\n"); - } else { - ret = (pgtable == data->pgtable) ? 1 : -EBUSY; - - dev_dbg(data->sysmmu, "already enabled\n"); } - - if (WARN_ON(ret < 0)) - set_sysmmu_inactive(data); /* decrement count */ - spin_unlock_irqrestore(&data->lock, flags); - return ret; + return 0; } static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data, @@ -793,8 +779,8 @@ static void exynos_iommu_domain_free(struct iommu_domain *iommu_domain) spin_lock_irqsave(&domain->lock, flags); list_for_each_entry_safe(data, next, &domain->clients, domain_node) { - if (__sysmmu_disable(data)) - data->master = NULL; + __sysmmu_disable(data); + data->master = NULL; list_del_init(&data->domain_node); } @@ -829,31 +815,23 @@ static void exynos_iommu_detach_device(struct iommu_domain *iommu_domain, phys_addr_t pagetable = virt_to_phys(domain->pgtable); struct sysmmu_drvdata *data, *next; unsigned long flags; - bool found = false; if (!has_sysmmu(dev) || owner->domain != iommu_domain) return; spin_lock_irqsave(&domain->lock, flags); list_for_each_entry_safe(data, next, &domain->clients, domain_node) { - if (data->master == dev) { - if (__sysmmu_disable(data)) { - data->master = NULL; - list_del_init(&data->domain_node); - } - pm_runtime_put(data->sysmmu); - found = true; - } + __sysmmu_disable(data); + data->master = NULL; + list_del_init(&data->domain_node); + pm_runtime_put(data->sysmmu); } spin_unlock_irqrestore(&domain->lock, flags); owner->domain = NULL; - if (found) - dev_dbg(dev, "%s: Detached IOMMU with pgtable %pa\n", - __func__, &pagetable); - else - dev_err(dev, "%s: No IOMMU is attached\n", __func__); + dev_dbg(dev, "%s: Detached IOMMU with pgtable %pa\n", __func__, + &pagetable); } static int exynos_iommu_attach_device(struct iommu_domain *iommu_domain, @@ -864,7 +842,6 @@ static int exynos_iommu_attach_device(struct iommu_domain *iommu_domain, struct sysmmu_drvdata *data; phys_addr_t pagetable = virt_to_phys(domain->pgtable); unsigned long flags; - int ret = -ENODEV; if (!has_sysmmu(dev)) return -ENODEV; @@ -874,27 +851,19 @@ static int exynos_iommu_attach_device(struct iommu_domain *iommu_domain, list_for_each_entry(data, &owner->controllers, owner_node) { pm_runtime_get_sync(data->sysmmu); - ret = __sysmmu_enable(data, pagetable, domain); - if (ret >= 0) { - data->master = dev; + __sysmmu_enable(data, pagetable, domain); + data->master = dev; - spin_lock_irqsave(&domain->lock, flags); - list_add_tail(&data->domain_node, &domain->clients); - spin_unlock_irqrestore(&domain->lock, flags); - } - } - - if (ret < 0) { - dev_err(dev, "%s: Failed to attach IOMMU with pgtable %pa\n", - __func__, &pagetable); - return ret; + spin_lock_irqsave(&domain->lock, flags); + list_add_tail(&data->domain_node, &domain->clients); + spin_unlock_irqrestore(&domain->lock, flags); } owner->domain = iommu_domain; - dev_dbg(dev, "%s: Attached IOMMU with pgtable %pa %s\n", - __func__, &pagetable, (ret == 0) ? "" : ", again"); + dev_dbg(dev, "%s: Attached IOMMU with pgtable %pa\n", __func__, + &pagetable); - return ret; + return 0; } static sysmmu_pte_t *alloc_lv2entry(struct exynos_iommu_domain *domain,