Commit 957a1ea3 authored by Maxime Ripard's avatar Maxime Ripard
Browse files

drm/sun4i: backend: Fix probe failure with multiple backends



Commit e0d07278 ("dma-mapping: introduce DMA range map, supplanting
dma_pfn_offset") introduced a regression in our code since the second
backed to probe will now get -EINVAL back from dma_direct_set_offset and
will prevent the entire DRM device from probing.

Ignore -EINVAL as a temporary measure to get it back working, before
removing that call entirely.

Fixes: e0d07278 ("dma-mapping: introduce DMA range map, supplanting dma_pfn_offset")
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Reviewed-by: default avatarChen-Yu Tsai <wens@csie.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 3650b228
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -814,9 +814,15 @@ static int sun4i_backend_bind(struct device *dev, struct device *master,
		 *
		 * XXX(hch): this has no business in a driver and needs to move
		 * to the device tree.
		 *
		 * If we have two subsequent calls to dma_direct_set_offset
		 * returns -EINVAL. Unfortunately, this happens when we have two
		 * backends in the system, and will result in the driver
		 * reporting an error while it has been setup properly before.
		 * Ignore EINVAL, but it should really be removed eventually.
		 */
		ret = dma_direct_set_offset(drm->dev, PHYS_OFFSET, 0, SZ_4G);
		if (ret)
		if (ret && ret != -EINVAL)
			return ret;
	}