Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50b4860d authored by Omar Ramirez Luna's avatar Omar Ramirez Luna Committed by Tony Lindgren
Browse files

OMAP: iovmm: fix SW flags passed by user



Commit d038aee2
"omap: iovmm: don't check 'da' to set IOVMF_DA_FIXED flag",
changes iovmm to receive flags specified by user, however
the upper 16 bits of the flags are wiped by iovmm itself.

This fixes IOVMF_DA_FIXED flags from being lost, and lets the user
map its desired "device addresses".

Signed-off-by: default avatarOmar Ramirez Luna <omar.ramirez@ti.com>
Acked-by: default avatarHiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 77f7059a
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -29,9 +29,6 @@ struct iovm_struct {
 * lower 16 bit is used for h/w and upper 16 bit is for s/w.
 */
#define IOVMF_SW_SHIFT		16
#define IOVMF_HW_SIZE		(1 << IOVMF_SW_SHIFT)
#define IOVMF_HW_MASK		(IOVMF_HW_SIZE - 1)
#define IOVMF_SW_MASK		(~IOVMF_HW_MASK)UL

/*
 * iovma: h/w flags derived from cam and ram attribute
+0 −4
Original line number Diff line number Diff line
@@ -648,7 +648,6 @@ u32 iommu_vmap(struct iommu *obj, u32 da, const struct sg_table *sgt,
			return PTR_ERR(va);
	}

	flags &= IOVMF_HW_MASK;
	flags |= IOVMF_DISCONT;
	flags |= IOVMF_MMIO;

@@ -706,7 +705,6 @@ u32 iommu_vmalloc(struct iommu *obj, u32 da, size_t bytes, u32 flags)
	if (!va)
		return -ENOMEM;

	flags &= IOVMF_HW_MASK;
	flags |= IOVMF_DISCONT;
	flags |= IOVMF_ALLOC;

@@ -795,7 +793,6 @@ u32 iommu_kmap(struct iommu *obj, u32 da, u32 pa, size_t bytes,
	if (!va)
		return -ENOMEM;

	flags &= IOVMF_HW_MASK;
	flags |= IOVMF_LINEAR;
	flags |= IOVMF_MMIO;

@@ -853,7 +850,6 @@ u32 iommu_kmalloc(struct iommu *obj, u32 da, size_t bytes, u32 flags)
		return -ENOMEM;
	pa = virt_to_phys(va);

	flags &= IOVMF_HW_MASK;
	flags |= IOVMF_LINEAR;
	flags |= IOVMF_ALLOC;