From: sricharan@codeaurora.org (Sricharan R)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V7 10/11] iommu/arm-smmu: Clean up early-probing workarounds
Date: Mon, 23 Jan 2017 21:48:12 +0530 [thread overview]
Message-ID: <1485188293-20263-11-git-send-email-sricharan@codeaurora.org> (raw)
In-Reply-To: <1485188293-20263-1-git-send-email-sricharan@codeaurora.org>
From: Robin Murphy <robin.murphy@arm.com>
Now that the appropriate ordering is enforced via profe-deferral of
masters in core code, rip it all out and bask in the simplicity.
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
[Sricharan: Rebased on top of ACPI IORT SMMU series]
Signed-off-by: Sricharan R <sricharan@codeaurora.org>
---
drivers/iommu/arm-smmu-v3.c | 46 ++---------------------------------
drivers/iommu/arm-smmu.c | 58 +++++++--------------------------------------
2 files changed, 10 insertions(+), 94 deletions(-)
diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 4d6ec44..632b541 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -2729,51 +2729,9 @@ static int arm_smmu_device_remove(struct platform_device *pdev)
.probe = arm_smmu_device_probe,
.remove = arm_smmu_device_remove,
};
+module_platform_driver(arm_smmu_driver);
-static int __init arm_smmu_init(void)
-{
- static bool registered;
- int ret = 0;
-
- if (!registered) {
- ret = platform_driver_register(&arm_smmu_driver);
- registered = !ret;
- }
- return ret;
-}
-
-static void __exit arm_smmu_exit(void)
-{
- return platform_driver_unregister(&arm_smmu_driver);
-}
-
-subsys_initcall(arm_smmu_init);
-module_exit(arm_smmu_exit);
-
-static int __init arm_smmu_of_init(struct device_node *np)
-{
- int ret = arm_smmu_init();
-
- if (ret)
- return ret;
-
- if (!of_platform_device_create(np, NULL, platform_bus_type.dev_root))
- return -ENODEV;
-
- return 0;
-}
-IOMMU_OF_DECLARE(arm_smmuv3, "arm,smmu-v3", arm_smmu_of_init);
-
-#ifdef CONFIG_ACPI
-static int __init acpi_smmu_v3_init(struct acpi_table_header *table)
-{
- if (iort_node_match(ACPI_IORT_NODE_SMMU_V3))
- return arm_smmu_init();
-
- return 0;
-}
-IORT_ACPI_DECLARE(arm_smmu_v3, ACPI_SIG_IORT, acpi_smmu_v3_init);
-#endif
+IOMMU_OF_DECLARE(arm_smmuv3, "arm,smmu-v3", NULL);
MODULE_DESCRIPTION("IOMMU API for ARM architected SMMUv3 implementations");
MODULE_AUTHOR("Will Deacon <will.deacon@arm.com>");
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index a60cded..93f77bb 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -2134,56 +2134,14 @@ static int arm_smmu_device_remove(struct platform_device *pdev)
.probe = arm_smmu_device_probe,
.remove = arm_smmu_device_remove,
};
-
-static int __init arm_smmu_init(void)
-{
- static bool registered;
- int ret = 0;
-
- if (!registered) {
- ret = platform_driver_register(&arm_smmu_driver);
- registered = !ret;
- }
- return ret;
-}
-
-static void __exit arm_smmu_exit(void)
-{
- return platform_driver_unregister(&arm_smmu_driver);
-}
-
-subsys_initcall(arm_smmu_init);
-module_exit(arm_smmu_exit);
-
-static int __init arm_smmu_of_init(struct device_node *np)
-{
- int ret = arm_smmu_init();
-
- if (ret)
- return ret;
-
- if (!of_platform_device_create(np, NULL, platform_bus_type.dev_root))
- return -ENODEV;
-
- return 0;
-}
-IOMMU_OF_DECLARE(arm_smmuv1, "arm,smmu-v1", arm_smmu_of_init);
-IOMMU_OF_DECLARE(arm_smmuv2, "arm,smmu-v2", arm_smmu_of_init);
-IOMMU_OF_DECLARE(arm_mmu400, "arm,mmu-400", arm_smmu_of_init);
-IOMMU_OF_DECLARE(arm_mmu401, "arm,mmu-401", arm_smmu_of_init);
-IOMMU_OF_DECLARE(arm_mmu500, "arm,mmu-500", arm_smmu_of_init);
-IOMMU_OF_DECLARE(cavium_smmuv2, "cavium,smmu-v2", arm_smmu_of_init);
-
-#ifdef CONFIG_ACPI
-static int __init arm_smmu_acpi_init(struct acpi_table_header *table)
-{
- if (iort_node_match(ACPI_IORT_NODE_SMMU))
- return arm_smmu_init();
-
- return 0;
-}
-IORT_ACPI_DECLARE(arm_smmu, ACPI_SIG_IORT, arm_smmu_acpi_init);
-#endif
+module_platform_driver(arm_smmu_driver);
+
+IOMMU_OF_DECLARE(arm_smmuv1, "arm,smmu-v1", NULL);
+IOMMU_OF_DECLARE(arm_smmuv2, "arm,smmu-v2", NULL);
+IOMMU_OF_DECLARE(arm_mmu400, "arm,mmu-400", NULL);
+IOMMU_OF_DECLARE(arm_mmu401, "arm,mmu-401", NULL);
+IOMMU_OF_DECLARE(arm_mmu500, "arm,mmu-500", NULL);
+IOMMU_OF_DECLARE(cavium_smmuv2, "cavium,smmu-v2", NULL);
MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations");
MODULE_AUTHOR("Will Deacon <will.deacon@arm.com>");
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2017-01-23 16:18 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20170123161926epcas2p1cf464a2978d89d0c1fdd2f7cc6d38317@epcas2p1.samsung.com>
2017-01-23 16:18 ` [PATCH V7 00/11] IOMMU probe deferral support Sricharan R
2017-01-23 16:18 ` [PATCH V7 01/11] iommu/of: Refactor of_iommu_configure() for error handling Sricharan R
2017-01-25 17:17 ` Tomasz Nowicki
2017-01-25 17:35 ` Robin Murphy
2017-01-25 18:13 ` Tomasz Nowicki
2017-01-27 18:00 ` Sricharan
2017-01-27 18:19 ` Robin Murphy
2017-01-30 7:00 ` Sricharan
2017-01-30 18:42 ` Robin Murphy
2017-01-31 13:11 ` Sricharan
2017-01-23 16:18 ` [PATCH V7 02/11] iommu/of: Prepare for deferred IOMMU configuration Sricharan R
2017-01-23 16:18 ` [PATCH V7 03/11] of: dma: Move range size workaround to of_dma_get_range() Sricharan R
2017-01-23 16:18 ` [PATCH V7 04/11] of: dma: Make of_dma_deconfigure() public Sricharan R
2017-01-23 16:18 ` [PATCH V7 05/11] ACPI/IORT: Add function to check SMMUs drivers presence Sricharan R
2017-01-23 16:18 ` [PATCH V7 06/11] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices Sricharan R
2017-01-28 21:08 ` Bjorn Helgaas
2017-01-30 7:09 ` Rafael J. Wysocki
2017-01-23 16:18 ` [PATCH V7 07/11] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2017-01-28 21:03 ` Bjorn Helgaas
2017-01-30 8:01 ` Sricharan
2017-01-29 16:36 ` Sinan Kaya
2017-01-30 12:00 ` Sricharan
2017-01-23 16:18 ` [PATCH V7 08/11] drivers: acpi: " Sricharan R
2017-01-24 12:37 ` Lorenzo Pieralisi
2017-01-24 13:14 ` Hanjun Guo
2017-01-25 7:31 ` Sricharan
2017-01-29 17:53 ` Sinan Kaya
2017-01-30 12:22 ` Robin Murphy
2017-01-30 13:59 ` Sinan Kaya
2017-01-30 14:23 ` Nate Watterson
2017-01-30 14:33 ` Sinan Kaya
2017-01-30 14:38 ` Will Deacon
2017-01-30 14:54 ` Nate Watterson
2017-01-30 15:46 ` Sinan Kaya
2017-01-30 16:51 ` Lorenzo Pieralisi
2017-01-30 20:03 ` Sinan Kaya
2017-02-01 18:52 ` Lorenzo Pieralisi
2017-02-01 19:10 ` Sinan Kaya
2017-02-02 19:01 ` Nate Watterson
2017-02-03 3:37 ` Hanjun Guo
2017-02-03 3:37 ` Sricharan
2017-01-23 16:18 ` [PATCH V7 09/11] arm64: dma-mapping: Remove the notifier trick to handle early setting of dma_ops Sricharan R
2017-01-28 21:06 ` Bjorn Helgaas
2017-01-30 8:04 ` Sricharan
2017-01-23 16:18 ` Sricharan R [this message]
2017-01-25 17:28 ` [PATCH V7 10/11] iommu/arm-smmu: Clean up early-probing workarounds Tomasz Nowicki
2017-01-28 21:07 ` Bjorn Helgaas
2017-01-30 8:05 ` Sricharan
2017-01-23 16:18 ` [PATCH V7 11/11] ACPI/IORT: Remove linker section for IORT entries probing Sricharan R
2017-01-24 7:40 ` [PATCH V7 00/11] IOMMU probe deferral support Marek Szyprowski
2017-01-24 11:15 ` Sricharan
2017-01-25 4:33 ` Hanjun Guo
2017-01-25 7:33 ` Sricharan
2017-01-28 21:10 ` Bjorn Helgaas
2017-01-30 9:20 ` Sricharan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1485188293-20263-11-git-send-email-sricharan@codeaurora.org \
--to=sricharan@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).