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

Commit 6b05e569 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "iommu: msm: Add debug option to only map 4K pages"

parents feb7dc45 0a256beb
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -337,12 +337,28 @@ static int check_range(u32 *fl_table, unsigned int va,
	return 0;
}

/*
 * For debugging we may want to force mappings to be 4K only
 */
#ifdef CONFIG_IOMMU_FORCE_4K_MAPPINGS
static inline int is_fully_aligned(unsigned int va, phys_addr_t pa, size_t len,
				   int align)
{
	if (align == SZ_4K) {
		return  IS_ALIGNED(va, align) && IS_ALIGNED(pa, align)
			&& (len >= align);
	} else {
		return 0;
	}
}
#else
static inline int is_fully_aligned(unsigned int va, phys_addr_t pa, size_t len,
				   int align)
{
	return  IS_ALIGNED(va, align) && IS_ALIGNED(pa, align)
		&& (len >= align);
}
#endif

int msm_iommu_pagetable_map_range(struct msm_iommu_pt *pt, unsigned int va,
		       struct scatterlist *sg, unsigned int len, int prot)
+13 −2
Original line number Diff line number Diff line
@@ -455,11 +455,22 @@ static phys_addr_t get_phys_addr(struct scatterlist *sg)
	return pa;
}

static inline s32 is_fully_aligned(u32 va, phys_addr_t pa, size_t len,
				   s32 align)
#ifdef CONFIG_IOMMU_FORCE_4K_MAPPINGS
static inline int is_fully_aligned(unsigned int va, phys_addr_t pa, size_t len,
				   int align)
{
	if (align == SZ_4K)
		return  IS_ALIGNED(va | pa, align) && (len >= align);
	else
		return 0;
}
#else
static inline int is_fully_aligned(unsigned int va, phys_addr_t pa, size_t len,
				   int align)
{
	return  IS_ALIGNED(va | pa, align) && (len >= align);
}
#endif

s32 msm_iommu_pagetable_map_range(struct msm_iommu_pt *pt, u32 va,
		       struct scatterlist *sg, u32 len, s32 prot)