iommu/omap-iovmm: support non page-aligned buffers in iommu_vmap
iommu/omap-iovmm: support non page-aligned buffers in iommu_vmap

omap_iovmm requires page-aligned buffers, and that sometimes causes
omap3isp failures (i.e. whenever the buffer passed from userspace is not
page-aligned).

Remove this limitation by rounding the address of the first page entry
down, and adding the offset back to the device address.

Signed-off-by: Laurent Pinchart <3ded2f39a78f0d7044839546f95841842b4d7c96@ideasonboard.com>
Acked-by: Hiroshi DOYU <e891c4ae8deef7e6c0a3fb82004ec71ca9fb7e00@nokia.com>
[f42ebdd520afb7505b40286b1d13fbb7281e5b96@wizery.com: rebased, but tested only with aligned buffers]
[f42ebdd520afb7505b40286b1d13fbb7281e5b96@wizery.com: slightly edited the commit log]
Signed-off-by: Ohad Ben-Cohen <f42ebdd520afb7505b40286b1d13fbb7281e5b96@wizery.com>
Signed-off-by: Joerg Roedel <ebd221a096cbc71dd9e1991db28795933c85f380@amd.com>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs