diff --git a/msm/msm_drv.h b/msm/msm_drv.h index 4f766839aa..3ef6dc1252 100644 --- a/msm/msm_drv.h +++ b/msm/msm_drv.h @@ -1217,7 +1217,10 @@ int msm_gem_dumb_create(struct drm_file *file, struct drm_device *dev, int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, uint32_t handle, uint64_t *offset); struct sg_table *msm_gem_prime_get_sg_table(struct drm_gem_object *obj); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) +int msm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map); +void msm_gem_prime_vunmap(struct drm_gem_object *obj, struct iosys_map *map); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) int msm_gem_prime_vmap(struct drm_gem_object *obj, struct dma_buf_map *map); void msm_gem_prime_vunmap(struct drm_gem_object *obj, struct dma_buf_map *map); #else diff --git a/msm/msm_gem.c b/msm/msm_gem.c index 6f1e08896d..60b2a6554a 100644 --- a/msm/msm_gem.c +++ b/msm/msm_gem.c @@ -693,7 +693,9 @@ fail: static void *get_vaddr(struct drm_gem_object *obj, unsigned madv) { struct msm_gem_object *msm_obj = to_msm_bo(obj); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) + struct iosys_map map; +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) struct dma_buf_map map; #endif int ret = 0; @@ -797,7 +799,9 @@ int msm_gem_madvise(struct drm_gem_object *obj, unsigned madv) static void msm_gem_vunmap_locked(struct drm_gem_object *obj) { struct msm_gem_object *msm_obj = to_msm_bo(obj); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) + struct iosys_map map = IOSYS_MAP_INIT_VADDR(msm_obj->vaddr); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(msm_obj->vaddr); #endif @@ -866,7 +870,9 @@ void msm_gem_free_object(struct drm_gem_object *obj) struct msm_gem_object *msm_obj = to_msm_bo(obj); struct drm_device *dev = obj->dev; struct msm_drm_private *priv = dev->dev_private; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) + struct iosys_map map = IOSYS_MAP_INIT_VADDR(msm_obj->vaddr); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(msm_obj->vaddr); #endif diff --git a/msm/msm_gem_prime.c b/msm/msm_gem_prime.c index c8c5bf8651..94669c8bfa 100644 --- a/msm/msm_gem_prime.c +++ b/msm/msm_gem_prime.c @@ -44,7 +44,13 @@ struct sg_table *msm_gem_prime_get_sg_table(struct drm_gem_object *obj) return drm_prime_pages_to_sg(obj->dev, msm_obj->pages, npages); } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) +int msm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map) +{ + map->vaddr = msm_gem_get_vaddr(obj); + return IS_ERR_OR_NULL(map->vaddr); +} +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) int msm_gem_prime_vmap(struct drm_gem_object *obj, struct dma_buf_map *map) { map->vaddr = msm_gem_get_vaddr(obj); @@ -57,7 +63,9 @@ void *msm_gem_prime_vmap(struct drm_gem_object *obj) } #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) +void msm_gem_prime_vunmap(struct drm_gem_object *obj, struct iosys_map *map) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) void msm_gem_prime_vunmap(struct drm_gem_object *obj, struct dma_buf_map *map) #else void msm_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr) diff --git a/rotator/sde_rotator_r3.c b/rotator/sde_rotator_r3.c index 8b62f17337..880651c8ff 100644 --- a/rotator/sde_rotator_r3.c +++ b/rotator/sde_rotator_r3.c @@ -1213,7 +1213,11 @@ static struct sde_hw_rotator_context *sde_hw_rotator_get_ctx( static void sde_hw_rotator_map_vaddr(struct sde_dbg_buf *dbgbuf, struct sde_layer_buffer *buf, struct sde_mdp_data *data) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)) + struct iosys_map map; +#else struct dma_buf_map map; +#endif dbgbuf->dmabuf = data->p[0].srcp_dma_buf; dbgbuf->buflen = data->p[0].srcp_dma_buf->size;