IOMMU Updates for Linux v4.2

This time with bigger changes than usual:

	* A new IOMMU driver for the ARM SMMUv3. This IOMMU is pretty
	  different from SMMUv1 and v2 in that it is configured through
	  in-memory structures and not through the MMIO register region.
	  The ARM SMMUv3 also supports IO demand paging for PCI devices
	  with PRI/PASID capabilities, but this is not implemented in
	  the driver yet.

	* Lots of cleanups and device-tree support for the Exynos IOMMU
	  driver. This is part of the effort to bring Exynos DRM support
	  upstream.

	* Introduction of default domains into the IOMMU core code. The
	  rationale behind this is to move functionalily out of the
	  IOMMU drivers to common code to get to a unified behavior
	  between different drivers.
	  The patches here introduce a default domain for iommu-groups
	  (isolation groups). A device will now always be attached to a
	  domain, either the default domain or another domain handled by
	  the device driver. The IOMMU drivers have to be modified to
	  make use of that feature. So long the AMD IOMMU driver is
	  converted, with others to follow.

	* Patches for the Intel VT-d drvier to fix DMAR faults that
	  happen when a kdump kernel boots. When the kdump kernel boots
	  it re-initializes the IOMMU hardware, which destroys all
	  mappings from the crashed kernel. As this happens before
	  the endpoint devices are re-initialized, any in-flight DMA
	  causes a DMAR fault. These faults cause PCI master aborts,
	  which some devices can't handle properly and go into an
	  undefined state, so that the device driver in the kdump kernel
	  fails to initialize them and the dump fails.
	  This is now fixed by copying over the mapping structures (only
	  context tables and interrupt remapping tables) from the old
	  kernel and keep the old mappings in place until the device
	  driver of the new kernel takes over. This emulates the the
	  behavior without an IOMMU to the best degree possible.

	* A couple of other small fixes and cleanups.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQIcBAABAgAGBQJViSIWAAoJECvwRC2XARrjl+cP/2FXS7SWDq91VFiIZfXfPt8H
C5Ef3OGWCnMzn4MKE1ExkyDhC+AH6pF1s4zi3XfT6b8iOA+DUpa51rxJjixszt31
tQwmvB7hWu4mznGxSN7EA0Pm0l/v3tBAY5BvG598af0aNZFFJ6po+31MyQA5X67+
6xpqLbH/hm4IZhFBOEzZwxuWWsNxlJwwzKqeAjGyqeUhdruRYZiPHWQ17sDjwLM/
QcVvWBb7meOtKv1OCtpzC4sglSk3scbAfEHMEBuDt8cI6OD7/t2VzPXDWWZuXGqK
nRAxCT7NrXvyOnv0xwdn0j5p1FUGipVxvhsGWX7sJsh3UHWm8Q+5rRKFFVI9pm50
QcMjiIMazK5VwcAkDnLoDgSz4Zz6TfHXEOqSJ2vjTPt2VDP/J9zdM2iwHx2ujicI
mIkrtmsBprvAPx6e9jcqiS5L/Xy1y1xewXuGxa5F2XOjqdoXkPqaupjlyrWzrChA
MC8w67FdzjHDPCfIqfIWZpJQj4f1OFQGd3HS5HpkBACxIwCg85gRw4DEMfD/sirO
BL2VM0RO/bB5+4R0AY7UA2VszQvNMqedj1bA4vAbrnXqOh8BI/0GgeoWiBMXhyX1
qvT1jl+cxuCm5tgBOMUGYoRyF+//bH+l78jLsTYaWRtuVzFlkAX6idNvYYK0dmNt
tLII2IIZBk87P3pF4d6A
=Zicw
-----END PGP SIGNATURE-----
Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'x86/vt-d', 'x86/amd', 'default-domains' and 'core' into next