[PATCH v8 13/16] drivers: iommu: arm-smmu: add IORT configuration
From: Will Deacon <hidden>
Date: 2016-11-18 16:08:12
Also in:
linux-acpi, linux-iommu, linux-pci, lkml
On Wed, Nov 16, 2016 at 03:29:33PM +0000, Lorenzo Pieralisi wrote:
In ACPI bases systems, in order to be able to create platform devices and initialize them for ARM SMMU components, the IORT kernel implementation requires a set of static functions to be used by the IORT kernel layer to configure platform devices for ARM SMMU components. Add static configuration functions to the IORT kernel layer for the ARM SMMU components, so that the ARM SMMU driver can initialize its respective platform device by relying on the IORT kernel infrastructure and by adding a corresponding ACPI device early probe section entry. Signed-off-by: Lorenzo Pieralisi <redacted> Reviewed-by: Tomasz Nowicki <redacted> Tested-by: Hanjun Guo <redacted> Tested-by: Tomasz Nowicki <redacted> Cc: Will Deacon <redacted> Cc: Robin Murphy <robin.murphy@arm.com> Cc: Joerg Roedel <joro@8bytes.org> --- drivers/acpi/arm64/iort.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ drivers/iommu/arm-smmu.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++- include/linux/acpi_iort.h | 3 ++ 3 files changed, 166 insertions(+), 1 deletion(-)
[...]
quoted hunk ↗ jump to hunk
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 573b2b6..21d1892 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c@@ -28,6 +28,8 @@ #define pr_fmt(fmt) "arm-smmu: " fmt +#include <linux/acpi.h> +#include <linux/acpi_iort.h> #include <linux/atomic.h> #include <linux/delay.h> #include <linux/dma-iommu.h>@@ -1904,6 +1906,70 @@ static const struct of_device_id arm_smmu_of_match[] = { }; MODULE_DEVICE_TABLE(of, arm_smmu_of_match); +#ifdef CONFIG_ACPI +static int acpi_smmu_get_data(u32 model, u32 *version, u32 *impl)
You should use the enum type for the version, rather than a u32. Will