Browse Source

drm: Make the prime vmap/vunmap hooks optional.

Some drivers leave these unimplemented, so don't make them have
unimplemented stubs.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20180424004610.4637-2-eric@anholt.net
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Eric Anholt 7 years ago
parent
commit
d34deab907
1 changed files with 6 additions and 2 deletions
  1. 6 2
      drivers/gpu/drm/drm_prime.c

+ 6 - 2
drivers/gpu/drm/drm_prime.c

@@ -409,7 +409,10 @@ void *drm_gem_dmabuf_vmap(struct dma_buf *dma_buf)
 	struct drm_gem_object *obj = dma_buf->priv;
 	struct drm_gem_object *obj = dma_buf->priv;
 	struct drm_device *dev = obj->dev;
 	struct drm_device *dev = obj->dev;
 
 
-	return dev->driver->gem_prime_vmap(obj);
+	if (dev->driver->gem_prime_vmap)
+		return dev->driver->gem_prime_vmap(obj);
+	else
+		return NULL;
 }
 }
 EXPORT_SYMBOL(drm_gem_dmabuf_vmap);
 EXPORT_SYMBOL(drm_gem_dmabuf_vmap);
 
 
@@ -426,7 +429,8 @@ void drm_gem_dmabuf_vunmap(struct dma_buf *dma_buf, void *vaddr)
 	struct drm_gem_object *obj = dma_buf->priv;
 	struct drm_gem_object *obj = dma_buf->priv;
 	struct drm_device *dev = obj->dev;
 	struct drm_device *dev = obj->dev;
 
 
-	dev->driver->gem_prime_vunmap(obj, vaddr);
+	if (dev->driver->gem_prime_vunmap)
+		dev->driver->gem_prime_vunmap(obj, vaddr);
 }
 }
 EXPORT_SYMBOL(drm_gem_dmabuf_vunmap);
 EXPORT_SYMBOL(drm_gem_dmabuf_vunmap);