On Mon, Jul 25, 2016 at 10:09 AM, Robin Murphy <robin.murphy@xxxxxxx> wrote: > Hi Lorenzo, > > On 20/07/16 12:23, Lorenzo Pieralisi wrote: >> The iommu_fwspec structure, used to hold per device iommu configuration >> data is not OF specific and therefore can be moved to a generic >> and OF independent compilation unit. >> >> In particular, the iommu_fwspec handling hinges on the device_node >> pointer to identify the IOMMU device associated with the iommu_fwspec >> structure, that is easily converted to a more generic fwnode_handle >> pointer that can cater for OF and non-OF (ie ACPI) systems. >> >> Create the files and related Kconfig entry to decouple iommu_fwspec >> structure from the OF iommu kernel layer. >> >> Given that the current iommu_fwspec implementation relies on >> the arch specific struct device.archdata.iommu field in its >> implementation, by making the code standalone and independent >> of the OF layer this patch makes sure that the iommu_fwspec >> kernel code can be selected only on arches implementing the >> struct device.archdata.iommu field by adding an explicit >> arch dependency in its config entry. >> >> Current drivers using the iommu_fwspec for streamid translation >> are converted to the new iommu_fwspec API by simply converting >> the device_node to its fwnode_handle pointer. >> >> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> >> Cc: Will Deacon <will.deacon@xxxxxxx> >> Cc: Hanjun Guo <hanjun.guo@xxxxxxxxxx> >> Cc: Robin Murphy <robin.murphy@xxxxxxx> >> Cc: Joerg Roedel <joro@xxxxxxxxxx> >> --- >> drivers/iommu/Kconfig | 4 ++ >> drivers/iommu/Makefile | 1 + >> drivers/iommu/arm-smmu-v3.c | 13 +++-- >> drivers/iommu/iommu-fwspec.c | 114 +++++++++++++++++++++++++++++++++++++++++++ >> drivers/iommu/of_iommu.c | 52 -------------------- >> include/linux/iommu-fwspec.h | 60 +++++++++++++++++++++++ >> include/linux/of_iommu.h | 24 +++------ >> 7 files changed, 196 insertions(+), 72 deletions(-) >> create mode 100644 drivers/iommu/iommu-fwspec.c >> create mode 100644 include/linux/iommu-fwspec.h >> >> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig >> index d1c66af..2b26bfb 100644 >> --- a/drivers/iommu/Kconfig >> +++ b/drivers/iommu/Kconfig >> @@ -67,6 +67,10 @@ config OF_IOMMU >> def_bool y >> depends on OF && IOMMU_API >> >> +config IOMMU_FWSPEC >> + def_bool y >> + depends on ARM64 && IOMMU_API > > I think that could be at least (ARM || ARM64). Why any arch dependency? Seems like OF_IOMMU (and ACPI?) should select this. Rob -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html