iommu.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: will@kernel.org
Cc: iommu@lists.linuxfoundation.org, isaacm@codeaurora.org,
	saravanak@google.com, jean-philippe@linaro.org,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	bhelgaas@google.com, robin.murphy@arm.com,
	Ard Biesheuvel <ardb@kernel.org>
Subject: [PATCH] iommu/arm-smmu: support SMMU module probing from the IORT
Date: Fri, 22 Nov 2019 18:41:25 +0100	[thread overview]
Message-ID: <20191122174125.21030-1-ardb@kernel.org> (raw)
In-Reply-To: <20191121114918.2293-1-will@kernel.org>

Add support for SMMU drivers built as modules to the ACPI/IORT device
probing path, by deferring the probe of the master if the SMMU driver is
known to exist but has not been loaded yet. Given that the IORT code
registers a platform device for each SMMU that it discovers, we can
easily trigger the udev based autoloading of the SMMU drivers by making
the platform device identifier part of the module alias.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 drivers/acpi/arm64/iort.c   | 4 ++--
 drivers/iommu/arm-smmu-v3.c | 1 +
 drivers/iommu/arm-smmu.c    | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 5a7551d060f2..a696457a9b11 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -850,9 +850,9 @@ static inline bool iort_iommu_driver_enabled(u8 type)
 {
 	switch (type) {
 	case ACPI_IORT_NODE_SMMU_V3:
-		return IS_BUILTIN(CONFIG_ARM_SMMU_V3);
+		return IS_ENABLED(CONFIG_ARM_SMMU_V3);
 	case ACPI_IORT_NODE_SMMU:
-		return IS_BUILTIN(CONFIG_ARM_SMMU);
+		return IS_ENABLED(CONFIG_ARM_SMMU);
 	default:
 		pr_warn("IORT node type %u does not describe an SMMU\n", type);
 		return false;
diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 7669beafc493..bf6a1e8eb9b0 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -3733,4 +3733,5 @@ module_platform_driver(arm_smmu_driver);
 
 MODULE_DESCRIPTION("IOMMU API for ARM architected SMMUv3 implementations");
 MODULE_AUTHOR("Will Deacon <will@kernel.org>");
+MODULE_ALIAS("platform:arm-smmu-v3");
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index d55acc48aee3..db5106b0955b 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -2292,4 +2292,5 @@ module_platform_driver(arm_smmu_driver);
 
 MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations");
 MODULE_AUTHOR("Will Deacon <will@kernel.org>");
+MODULE_ALIAS("platform:arm-smmu");
 MODULE_LICENSE("GPL v2");
-- 
2.20.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  parent reply	other threads:[~2019-11-22 17:47 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-21 11:49 [PATCH v3 00/14] iommu: Permit modular builds of ARM SMMU[v3] drivers Will Deacon
2019-11-21 11:49 ` [PATCH v3 01/14] drivers/iommu: Export core IOMMU API symbols to permit modular drivers Will Deacon
2019-11-21 11:49 ` [PATCH v3 02/14] iommu/of: Request ACS from the PCI core when configuring IOMMU linkage Will Deacon
2019-11-21 11:49 ` [PATCH v3 03/14] PCI: Export pci_ats_disabled() as a GPL symbol to modules Will Deacon
2019-11-21 11:49 ` [PATCH v3 04/14] drivers/iommu: Take a ref to the IOMMU driver prior to ->add_device() Will Deacon
2019-11-21 11:49 ` [PATCH v3 05/14] iommu/of: Take a ref to the IOMMU driver during ->of_xlate() Will Deacon
2019-11-21 11:49 ` [PATCH v3 06/14] drivers/iommu: Allow IOMMU bus ops to be unregistered Will Deacon
2019-11-21 11:49 ` [PATCH v3 07/14] Revert "iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular" Will Deacon
2019-11-21 11:49 ` [PATCH v3 08/14] Revert "iommu/arm-smmu: Make arm-smmu " Will Deacon
2019-11-21 11:49 ` [PATCH v3 09/14] iommu/arm-smmu: Prevent forced unbinding of Arm SMMU drivers Will Deacon
2019-11-26  9:13   ` John Garry
2019-11-26 20:27     ` Saravana Kannan via iommu
2019-11-27 11:04       ` John Garry
2019-11-27 11:41         ` John Garry
2019-11-21 11:49 ` [PATCH v3 10/14] iommu/arm-smmu-v3: Unregister IOMMU and bus ops on device removal Will Deacon
2019-11-21 11:49 ` [PATCH v3 11/14] iommu/arm-smmu-v3: Allow building as a module Will Deacon
2019-11-21 11:49 ` [PATCH v3 12/14] iommu/arm-smmu: Unregister IOMMU and bus ops on device removal Will Deacon
2019-11-21 11:49 ` [PATCH v3 13/14] iommu/arm-smmu: Allow building as a module Will Deacon
2019-11-21 11:49 ` [PATCH v3 14/14] iommu/arm-smmu: Update my email address in MODULE_AUTHOR() Will Deacon
2019-11-22 17:41 ` Ard Biesheuvel [this message]
2019-11-25 12:16   ` [PATCH] iommu/arm-smmu: support SMMU module probing from the IORT Robin Murphy
2019-11-25 16:04   ` Lorenzo Pieralisi
2019-11-27 16:20     ` John Garry

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=20191122174125.21030-1-ardb@kernel.org \
    --to=ardb@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=iommu@lists.linuxfoundation.org \
    --cc=isaacm@codeaurora.org \
    --cc=jean-philippe@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=saravanak@google.com \
    --cc=will@kernel.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).