IOMMU Updates for Linux v4.14

Slightly more changes than usual this time:

	- KDump Kernel IOMMU take-over code for AMD IOMMU. The code now
	  tries to preserve the mappings of the kernel so that master
	  aborts for devices are avoided. Master aborts cause some
	  devices to fail in the kdump kernel, so this code makes the
	  dump more likely to succeed when AMD IOMMU is enabled.

	- Common flush queue implementation for IOVA code users. The
	  code is still optional, but AMD and Intel IOMMU drivers had
	  their own implementation which is now unified.

	- Finish support for iommu-groups. All drivers implement this
	  feature now so that IOMMU core code can rely on it.

	- Finish support for 'struct iommu_device' in iommu drivers. All
	  drivers now use the interface.

	- New functions in the IOMMU-API for explicit IO/TLB flushing.
	  This will help to reduce the number of IO/TLB flushes when
	  IOMMU drivers support this interface.

	- Support for mt2712 in the Mediatek IOMMU driver

	- New IOMMU driver for QCOM hardware

	- System PM support for ARM-SMMU

	- Shutdown method for ARM-SMMU-v3

	- Some constification patches

	- Various other small improvements and fixes
Merge branches 'arm/exynos', 'arm/renesas', 'arm/rockchip', 'arm/omap', 'arm/mediatek', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd', 's390' and 'core' into next