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

Commit 2f39258e authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'drm-etnaviv-fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes

a single fix for a FE hang after IOVA rollover on GC3000. This isn't
pretty, but is the minimal fix for the issue. A larger rework of the
code, that will also fix this issue properly, is currently in the works,
but that needs to wait for at least the next feature pull.

* 'drm-etnaviv-fixes' of https://git.pengutronix.de/git/lst/linux:
  drm/etnaviv: trick drm_mm into giving out a low IOVA
parents 2e76f856 3546fb0c
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -116,9 +116,14 @@ static int etnaviv_iommu_find_iova(struct etnaviv_iommu *mmu,
		struct list_head list;
		bool found;

		/*
		 * XXX: The DRM_MM_SEARCH_BELOW is really a hack to trick
		 * drm_mm into giving out a low IOVA after address space
		 * rollover. This needs a proper fix.
		 */
		ret = drm_mm_insert_node_in_range(&mmu->mm, node,
			size, 0, mmu->last_iova, ~0UL,
			DRM_MM_SEARCH_DEFAULT);
			mmu->last_iova ? DRM_MM_SEARCH_DEFAULT : DRM_MM_SEARCH_BELOW);

		if (ret != -ENOSPC)
			break;