Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/gem: rename GEM CMA helpers to GEM DMA helpers

Rename "GEM CMA" helpers to "GEM DMA" helpers - considering the
hierarchy of APIs (mm/cma -> dma -> gem dma) calling them "GEM
DMA" seems to be more applicable.

Besides that, commit e57924d4ae80 ("drm/doc: Task to rename CMA helpers")
requests to rename the CMA helpers and implies that people seem to be
confused about the naming.

In order to do this renaming the following script was used:

```
#!/bin/bash

DIRS="drivers/gpu include/drm Documentation/gpu"

REGEX_SYM_UPPER="[0-9A-Z_\-]"
REGEX_SYM_LOWER="[0-9a-z_\-]"

REGEX_GREP_UPPER="(${REGEX_SYM_UPPER}*)(GEM)_CMA_(${REGEX_SYM_UPPER}*)"
REGEX_GREP_LOWER="(${REGEX_SYM_LOWER}*)(gem)_cma_(${REGEX_SYM_LOWER}*)"

REGEX_SED_UPPER="s/${REGEX_GREP_UPPER}/\1\2_DMA_\3/g"
REGEX_SED_LOWER="s/${REGEX_GREP_LOWER}/\1\2_dma_\3/g"

# Find all upper case 'CMA' symbols and replace them with 'DMA'.
for ff in $(grep -REHl "${REGEX_GREP_UPPER}" $DIRS)
do
sed -i -E "$REGEX_SED_UPPER" $ff
done

# Find all lower case 'cma' symbols and replace them with 'dma'.
for ff in $(grep -REHl "${REGEX_GREP_LOWER}" $DIRS)
do
sed -i -E "$REGEX_SED_LOWER" $ff
done

# Replace all occurrences of 'CMA' / 'cma' in comments and
# documentation files with 'DMA' / 'dma'.
for ff in $(grep -RiHl " cma " $DIRS)
do
sed -i -E "s/ cma / dma /g" $ff
sed -i -E "s/ CMA / DMA /g" $ff
done

# Rename all 'cma_obj's to 'dma_obj'.
for ff in $(grep -RiHl "cma_obj" $DIRS)
do
sed -i -E "s/cma_obj/dma_obj/g" $ff
done
```

Only a few more manual modifications were needed, e.g. reverting the
following modifications in some DRM Kconfig files

- select CMA if HAVE_DMA_CONTIGUOUS
+ select DMA if HAVE_DMA_CONTIGUOUS

as well as manually picking the occurrences of 'CMA'/'cma' in comments and
documentation which relate to "GEM CMA", but not "FB CMA".

Also drivers/gpu/drm/Makefile was fixed up manually after renaming
drm_gem_cma_helper.c to drm_gem_dma_helper.c.

This patch is compile-time tested building a x86_64 kernel with
`make allyesconfig && make drivers/gpu/drm`.

Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> #drivers/gpu/drm/arm
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220802000405.949236-4-dakr@redhat.com

authored by

Danilo Krummrich and committed by
Sam Ravnborg
4a83c26a 6bcfe8ea

+839 -842
+8 -8
Documentation/gpu/drm-mm.rst
··· 300 300 faults can implement their own mmap file operation handler. 301 301 302 302 For platforms without MMU the GEM core provides a helper method 303 - drm_gem_cma_get_unmapped_area(). The mmap() routines will call this to get a 303 + drm_gem_dma_get_unmapped_area(). The mmap() routines will call this to get a 304 304 proposed address for the mapping. 305 305 306 - To use drm_gem_cma_get_unmapped_area(), drivers must fill the struct 306 + To use drm_gem_dma_get_unmapped_area(), drivers must fill the struct 307 307 :c:type:`struct file_operations <file_operations>` get_unmapped_area field with 308 - a pointer on drm_gem_cma_get_unmapped_area(). 308 + a pointer on drm_gem_dma_get_unmapped_area(). 309 309 310 310 More detailed information about get_unmapped_area can be found in 311 311 Documentation/admin-guide/mm/nommu-mmap.rst ··· 355 355 .. kernel-doc:: drivers/gpu/drm/drm_gem.c 356 356 :export: 357 357 358 - GEM CMA Helper Functions Reference 358 + GEM DMA Helper Functions Reference 359 359 ---------------------------------- 360 360 361 - .. kernel-doc:: drivers/gpu/drm/drm_gem_cma_helper.c 362 - :doc: cma helpers 361 + .. kernel-doc:: drivers/gpu/drm/drm_gem_dma_helper.c 362 + :doc: dma helpers 363 363 364 - .. kernel-doc:: include/drm/drm_gem_cma_helper.h 364 + .. kernel-doc:: include/drm/drm_gem_dma_helper.h 365 365 :internal: 366 366 367 - .. kernel-doc:: drivers/gpu/drm/drm_gem_cma_helper.c 367 + .. kernel-doc:: drivers/gpu/drm/drm_gem_dma_helper.c 368 368 :export: 369 369 370 370 GEM SHMEM Helper Function Reference
+2 -2
drivers/gpu/drm/Kconfig
··· 200 200 help 201 201 Helpers for ttm-based gem objects 202 202 203 - config DRM_GEM_CMA_HELPER 203 + config DRM_GEM_DMA_HELPER 204 204 tristate 205 205 depends on DRM 206 206 help 207 - Choose this if you need the GEM CMA helper functions 207 + Choose this if you need the GEM DMA helper functions 208 208 209 209 config DRM_GEM_SHMEM_HELPER 210 210 tristate
+3 -3
drivers/gpu/drm/Makefile
··· 40 40 41 41 obj-$(CONFIG_DRM_BUDDY) += drm_buddy.o 42 42 43 - drm_cma_helper-y := drm_gem_cma_helper.o 44 - drm_cma_helper-$(CONFIG_DRM_KMS_HELPER) += drm_fb_dma_helper.o 45 - obj-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_cma_helper.o 43 + drm_dma_helper-y := drm_gem_dma_helper.o 44 + drm_dma_helper-$(CONFIG_DRM_KMS_HELPER) += drm_fb_dma_helper.o 45 + obj-$(CONFIG_DRM_GEM_DMA_HELPER) += drm_dma_helper.o 46 46 47 47 drm_shmem_helper-y := drm_gem_shmem_helper.o 48 48 obj-$(CONFIG_DRM_GEM_SHMEM_HELPER) += drm_shmem_helper.o
+2 -2
drivers/gpu/drm/arm/Kconfig
··· 6 6 depends on DRM && OF && (ARM || ARM64 || COMPILE_TEST) 7 7 depends on COMMON_CLK 8 8 select DRM_KMS_HELPER 9 - select DRM_GEM_CMA_HELPER 9 + select DRM_GEM_DMA_HELPER 10 10 help 11 11 Choose this option if you have an ARM High Definition Colour LCD 12 12 controller. ··· 27 27 depends on DRM && OF && (ARM || ARM64 || COMPILE_TEST) 28 28 depends on COMMON_CLK 29 29 select DRM_KMS_HELPER 30 - select DRM_GEM_CMA_HELPER 30 + select DRM_GEM_DMA_HELPER 31 31 select VIDEOMODE_HELPERS 32 32 help 33 33 Choose this option if you want to compile the ARM Mali Display
+1 -1
drivers/gpu/drm/arm/display/Kconfig
··· 4 4 depends on DRM && OF 5 5 depends on COMMON_CLK 6 6 select DRM_KMS_HELPER 7 - select DRM_GEM_CMA_HELPER 7 + select DRM_GEM_DMA_HELPER 8 8 select VIDEOMODE_HELPERS 9 9 help 10 10 Choose this option if you want to compile the ARM Komeda display
+3 -3
drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
··· 7 7 #include <drm/drm_device.h> 8 8 #include <drm/drm_fb_dma_helper.h> 9 9 #include <drm/drm_gem.h> 10 - #include <drm/drm_gem_cma_helper.h> 10 + #include <drm/drm_gem_dma_helper.h> 11 11 #include <drm/drm_gem_framebuffer_helper.h> 12 12 13 13 #include "komeda_framebuffer.h" ··· 137 137 } 138 138 139 139 min_size = komeda_fb_get_pixel_addr(kfb, 0, fb->height, i) 140 - - to_drm_gem_cma_obj(obj)->paddr; 140 + - to_drm_gem_dma_obj(obj)->paddr; 141 141 if (obj->size < min_size) { 142 142 DRM_DEBUG_KMS("The fb->obj[%d] size: 0x%zx lower than the minimum requirement: 0x%llx.\n", 143 143 i, obj->size, min_size); ··· 239 239 komeda_fb_get_pixel_addr(struct komeda_fb *kfb, int x, int y, int plane) 240 240 { 241 241 struct drm_framebuffer *fb = &kfb->base; 242 - const struct drm_gem_cma_object *obj; 242 + const struct drm_gem_dma_object *obj; 243 243 u32 offset, plane_x, plane_y, block_w, block_sz; 244 244 245 245 if (plane >= fb->format->num_planes) {
+5 -5
drivers/gpu/drm/arm/display/komeda/komeda_kms.c
··· 11 11 #include <drm/drm_atomic_helper.h> 12 12 #include <drm/drm_drv.h> 13 13 #include <drm/drm_fb_helper.h> 14 - #include <drm/drm_gem_cma_helper.h> 14 + #include <drm/drm_gem_dma_helper.h> 15 15 #include <drm/drm_gem_framebuffer_helper.h> 16 16 #include <drm/drm_managed.h> 17 17 #include <drm/drm_probe_helper.h> ··· 21 21 #include "komeda_framebuffer.h" 22 22 #include "komeda_kms.h" 23 23 24 - DEFINE_DRM_GEM_CMA_FOPS(komeda_cma_fops); 24 + DEFINE_DRM_GEM_DMA_FOPS(komeda_cma_fops); 25 25 26 - static int komeda_gem_cma_dumb_create(struct drm_file *file, 26 + static int komeda_gem_dma_dumb_create(struct drm_file *file, 27 27 struct drm_device *dev, 28 28 struct drm_mode_create_dumb *args) 29 29 { ··· 32 32 33 33 args->pitch = ALIGN(pitch, mdev->chip.bus_width); 34 34 35 - return drm_gem_cma_dumb_create_internal(file, dev, args); 35 + return drm_gem_dma_dumb_create_internal(file, dev, args); 36 36 } 37 37 38 38 static irqreturn_t komeda_kms_irq_handler(int irq, void *data) ··· 60 60 static const struct drm_driver komeda_kms_driver = { 61 61 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 62 62 .lastclose = drm_fb_helper_lastclose, 63 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(komeda_gem_cma_dumb_create), 63 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(komeda_gem_dma_dumb_create), 64 64 .fops = &komeda_cma_fops, 65 65 .name = "komeda", 66 66 .desc = "Arm Komeda Display Processor driver",
+1 -1
drivers/gpu/drm/arm/hdlcd_crtc.c
··· 21 21 #include <drm/drm_fb_dma_helper.h> 22 22 #include <drm/drm_fb_helper.h> 23 23 #include <drm/drm_framebuffer.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_of.h> 26 26 #include <drm/drm_probe_helper.h> 27 27 #include <drm/drm_vblank.h>
+3 -3
drivers/gpu/drm/arm/hdlcd_drv.c
··· 27 27 #include <drm/drm_debugfs.h> 28 28 #include <drm/drm_drv.h> 29 29 #include <drm/drm_fb_helper.h> 30 - #include <drm/drm_gem_cma_helper.h> 30 + #include <drm/drm_gem_dma_helper.h> 31 31 #include <drm/drm_gem_framebuffer_helper.h> 32 32 #include <drm/drm_modeset_helper.h> 33 33 #include <drm/drm_module.h> ··· 225 225 } 226 226 #endif 227 227 228 - DEFINE_DRM_GEM_CMA_FOPS(fops); 228 + DEFINE_DRM_GEM_DMA_FOPS(fops); 229 229 230 230 static const struct drm_driver hdlcd_driver = { 231 231 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 232 - DRM_GEM_CMA_DRIVER_OPS, 232 + DRM_GEM_DMA_DRIVER_OPS, 233 233 #ifdef CONFIG_DEBUG_FS 234 234 .debugfs_init = hdlcd_debugfs_init, 235 235 #endif
+4 -4
drivers/gpu/drm/arm/malidp_drv.c
··· 21 21 #include <drm/drm_drv.h> 22 22 #include <drm/drm_fb_helper.h> 23 23 #include <drm/drm_fourcc.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_gem_framebuffer_helper.h> 26 26 #include <drm/drm_modeset_helper.h> 27 27 #include <drm/drm_module.h> ··· 456 456 return 0; 457 457 } 458 458 459 - DEFINE_DRM_GEM_CMA_FOPS(fops); 459 + DEFINE_DRM_GEM_DMA_FOPS(fops); 460 460 461 461 static int malidp_dumb_create(struct drm_file *file_priv, 462 462 struct drm_device *drm, ··· 468 468 469 469 args->pitch = ALIGN(DIV_ROUND_UP(args->width * args->bpp, 8), alignment); 470 470 471 - return drm_gem_cma_dumb_create_internal(file_priv, drm, args); 471 + return drm_gem_dma_dumb_create_internal(file_priv, drm, args); 472 472 } 473 473 474 474 #ifdef CONFIG_DEBUG_FS ··· 565 565 566 566 static const struct drm_driver malidp_driver = { 567 567 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 568 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(malidp_dumb_create), 568 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(malidp_dumb_create), 569 569 #ifdef CONFIG_DEBUG_FS 570 570 .debugfs_init = malidp_debugfs_init, 571 571 #endif
+2 -2
drivers/gpu/drm/arm/malidp_mw.c
··· 13 13 #include <drm/drm_fb_dma_helper.h> 14 14 #include <drm/drm_fourcc.h> 15 15 #include <drm/drm_framebuffer.h> 16 - #include <drm/drm_gem_cma_helper.h> 16 + #include <drm/drm_gem_dma_helper.h> 17 17 #include <drm/drm_probe_helper.h> 18 18 #include <drm/drm_writeback.h> 19 19 ··· 160 160 161 161 n_planes = fb->format->num_planes; 162 162 for (i = 0; i < n_planes; i++) { 163 - struct drm_gem_cma_object *obj = drm_fb_dma_get_gem_obj(fb, i); 163 + struct drm_gem_dma_object *obj = drm_fb_dma_get_gem_obj(fb, i); 164 164 /* memory write buffers are never rotated */ 165 165 u8 alignment = malidp_hw_get_pitch_align(malidp->dev, 0); 166 166
+8 -8
drivers/gpu/drm/arm/malidp_planes.c
··· 16 16 #include <drm/drm_fb_dma_helper.h> 17 17 #include <drm/drm_fourcc.h> 18 18 #include <drm/drm_framebuffer.h> 19 - #include <drm/drm_gem_cma_helper.h> 19 + #include <drm/drm_gem_dma_helper.h> 20 20 #include <drm/drm_gem_framebuffer_helper.h> 21 21 #include <drm/drm_print.h> 22 22 ··· 333 333 334 334 for (i = 0; i < ms->n_planes; i++) { 335 335 struct drm_gem_object *obj; 336 - struct drm_gem_cma_object *cma_obj; 336 + struct drm_gem_dma_object *dma_obj; 337 337 struct sg_table *sgt; 338 338 struct scatterlist *sgl; 339 339 340 340 obj = drm_gem_fb_get_obj(ms->base.fb, i); 341 - cma_obj = to_drm_gem_cma_obj(obj); 341 + dma_obj = to_drm_gem_dma_obj(obj); 342 342 343 - if (cma_obj->sgt) 344 - sgt = cma_obj->sgt; 343 + if (dma_obj->sgt) 344 + sgt = dma_obj->sgt; 345 345 else 346 346 sgt = obj->funcs->get_sg_table(obj); 347 347 ··· 352 352 353 353 while (sgl) { 354 354 if (sgl->length < pgsize) { 355 - if (!cma_obj->sgt) 355 + if (!dma_obj->sgt) 356 356 kfree(sgt); 357 357 return false; 358 358 } 359 359 360 360 sgl = sg_next(sgl); 361 361 } 362 - if (!cma_obj->sgt) 362 + if (!dma_obj->sgt) 363 363 kfree(sgt); 364 364 } 365 365 ··· 732 732 paddr = drm_fb_dma_get_gem_addr(fb, plane->state, 733 733 plane_index); 734 734 } else { 735 - struct drm_gem_cma_object *obj; 735 + struct drm_gem_dma_object *obj; 736 736 737 737 obj = drm_fb_dma_get_gem_obj(fb, plane_index); 738 738
+3 -3
drivers/gpu/drm/armada/armada_gem.c
··· 107 107 } 108 108 109 109 /* 110 - * We could grab something from CMA if it's enabled, but that 110 + * We could grab something from DMA if it's enabled, but that 111 111 * involves building in a problem: 112 112 * 113 - * CMA's interface uses dma_alloc_coherent(), which provides us 114 - * with an CPU virtual address and a device address. 113 + * GEM DMA helper interface uses dma_alloc_coherent(), which provides 114 + * us with an CPU virtual address and a device address. 115 115 * 116 116 * The CPU virtual address may be either an address in the kernel 117 117 * direct mapped region (for example, as it would be on x86) or
+1 -1
drivers/gpu/drm/aspeed/Kconfig
··· 5 5 depends on (COMPILE_TEST || ARCH_ASPEED) 6 6 depends on MMU 7 7 select DRM_KMS_HELPER 8 - select DRM_GEM_CMA_HELPER 8 + select DRM_GEM_DMA_HELPER 9 9 select DMA_CMA if HAVE_DMA_CONTIGUOUS 10 10 select CMA if HAVE_DMA_CONTIGUOUS 11 11 select MFD_SYSCON
+2 -2
drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c
··· 11 11 #include <drm/drm_fourcc.h> 12 12 #include <drm/drm_framebuffer.h> 13 13 #include <drm/drm_gem_atomic_helper.h> 14 - #include <drm/drm_gem_cma_helper.h> 14 + #include <drm/drm_gem_dma_helper.h> 15 15 #include <drm/drm_panel.h> 16 16 #include <drm/drm_simple_kms_helper.h> 17 17 #include <drm/drm_vblank.h> ··· 168 168 struct drm_crtc *crtc = &pipe->crtc; 169 169 struct drm_framebuffer *fb = pipe->plane.state->fb; 170 170 struct drm_pending_vblank_event *event; 171 - struct drm_gem_cma_object *gem; 171 + struct drm_gem_dma_object *gem; 172 172 173 173 spin_lock_irq(&crtc->dev->event_lock); 174 174 event = crtc->state->event;
+3 -3
drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
··· 17 17 #include <drm/drm_crtc_helper.h> 18 18 #include <drm/drm_device.h> 19 19 #include <drm/drm_fb_helper.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_gem_framebuffer_helper.h> 22 22 #include <drm/drm_module.h> 23 23 #include <drm/drm_probe_helper.h> ··· 245 245 drm_kms_helper_poll_fini(drm); 246 246 } 247 247 248 - DEFINE_DRM_GEM_CMA_FOPS(fops); 248 + DEFINE_DRM_GEM_DMA_FOPS(fops); 249 249 250 250 static const struct drm_driver aspeed_gfx_driver = { 251 251 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 252 - DRM_GEM_CMA_DRIVER_OPS, 252 + DRM_GEM_DMA_DRIVER_OPS, 253 253 .fops = &fops, 254 254 .name = "aspeed-gfx-drm", 255 255 .desc = "ASPEED GFX DRM",
+1 -1
drivers/gpu/drm/atmel-hlcdc/Kconfig
··· 2 2 config DRM_ATMEL_HLCDC 3 3 tristate "DRM Support for ATMEL HLCDC Display Controller" 4 4 depends on DRM && OF && COMMON_CLK && MFD_ATMEL_HLCDC && ARM 5 - select DRM_GEM_CMA_HELPER 5 + select DRM_GEM_DMA_HELPER 6 6 select DRM_KMS_HELPER 7 7 select DRM_PANEL 8 8 help
+3 -3
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
··· 20 20 #include <drm/drm_atomic_helper.h> 21 21 #include <drm/drm_drv.h> 22 22 #include <drm/drm_fb_helper.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_gem_framebuffer_helper.h> 25 25 #include <drm/drm_module.h> 26 26 #include <drm/drm_probe_helper.h> ··· 730 730 clk_disable_unprepare(dc->hlcdc->periph_clk); 731 731 } 732 732 733 - DEFINE_DRM_GEM_CMA_FOPS(fops); 733 + DEFINE_DRM_GEM_DMA_FOPS(fops); 734 734 735 735 static const struct drm_driver atmel_hlcdc_dc_driver = { 736 736 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 737 - DRM_GEM_CMA_DRIVER_OPS, 737 + DRM_GEM_DMA_DRIVER_OPS, 738 738 .fops = &fops, 739 739 .name = "atmel-hlcdc", 740 740 .desc = "Atmel HLCD Controller DRM",
+2 -2
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
··· 15 15 #include <drm/drm_fb_dma_helper.h> 16 16 #include <drm/drm_fourcc.h> 17 17 #include <drm/drm_framebuffer.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 20 20 #include "atmel_hlcdc_dc.h" 21 21 ··· 448 448 sr = atmel_hlcdc_layer_read_reg(&plane->layer, ATMEL_HLCDC_LAYER_CHSR); 449 449 450 450 for (i = 0; i < state->nplanes; i++) { 451 - struct drm_gem_cma_object *gem = drm_fb_dma_get_gem_obj(fb, i); 451 + struct drm_gem_dma_object *gem = drm_fb_dma_get_gem_obj(fb, i); 452 452 453 453 state->dscrs[i]->addr = gem->paddr + state->offsets[i]; 454 454
+10 -10
drivers/gpu/drm/drm_fb_dma_helper.c
··· 13 13 #include <drm/drm_fb_dma_helper.h> 14 14 #include <drm/drm_fourcc.h> 15 15 #include <drm/drm_framebuffer.h> 16 - #include <drm/drm_gem_cma_helper.h> 16 + #include <drm/drm_gem_dma_helper.h> 17 17 #include <drm/drm_gem_framebuffer_helper.h> 18 18 #include <drm/drm_plane.h> 19 19 #include <linux/dma-mapping.h> ··· 35 35 */ 36 36 37 37 /** 38 - * drm_fb_dma_get_gem_obj() - Get CMA GEM object for framebuffer 38 + * drm_fb_dma_get_gem_obj() - Get DMA GEM object for framebuffer 39 39 * @fb: The framebuffer 40 40 * @plane: Which plane 41 41 * 42 - * Return the CMA GEM object for given framebuffer. 42 + * Return the DMA GEM object for given framebuffer. 43 43 * 44 44 * This function will usually be called from the CRTC callback functions. 45 45 */ 46 - struct drm_gem_cma_object *drm_fb_dma_get_gem_obj(struct drm_framebuffer *fb, 46 + struct drm_gem_dma_object *drm_fb_dma_get_gem_obj(struct drm_framebuffer *fb, 47 47 unsigned int plane) 48 48 { 49 49 struct drm_gem_object *gem; ··· 52 52 if (!gem) 53 53 return NULL; 54 54 55 - return to_drm_gem_cma_obj(gem); 55 + return to_drm_gem_dma_obj(gem); 56 56 } 57 57 EXPORT_SYMBOL_GPL(drm_fb_dma_get_gem_obj); 58 58 ··· 71 71 struct drm_plane_state *state, 72 72 unsigned int plane) 73 73 { 74 - struct drm_gem_cma_object *obj; 74 + struct drm_gem_dma_object *obj; 75 75 dma_addr_t paddr; 76 76 u8 h_div = 1, v_div = 1; 77 77 u32 block_w = drm_format_info_block_width(fb->format, plane); ··· 113 113 * @state: New plane state 114 114 * 115 115 * This function can be used by drivers that use damage clips and have 116 - * CMA GEM objects backed by non-coherent memory. Calling this function 116 + * DMA GEM objects backed by non-coherent memory. Calling this function 117 117 * in a plane's .atomic_update ensures that all the data in the backing 118 118 * memory have been written to RAM. 119 119 */ ··· 123 123 { 124 124 const struct drm_format_info *finfo = state->fb->format; 125 125 struct drm_atomic_helper_damage_iter iter; 126 - const struct drm_gem_cma_object *cma_obj; 126 + const struct drm_gem_dma_object *dma_obj; 127 127 unsigned int offset, i; 128 128 struct drm_rect clip; 129 129 dma_addr_t daddr; 130 130 size_t nb_bytes; 131 131 132 132 for (i = 0; i < finfo->num_planes; i++) { 133 - cma_obj = drm_fb_dma_get_gem_obj(state->fb, i); 134 - if (!cma_obj->map_noncoherent) 133 + dma_obj = drm_fb_dma_get_gem_obj(state->fb, i); 134 + if (!dma_obj->map_noncoherent) 135 135 continue; 136 136 137 137 daddr = drm_fb_dma_get_gem_addr(state->fb, state, i);
+1 -1
drivers/gpu/drm/drm_file.c
··· 131 131 * }; 132 132 * 133 133 * For plain GEM based drivers there is the DEFINE_DRM_GEM_FOPS() macro, and for 134 - * CMA based drivers there is the DEFINE_DRM_GEM_CMA_FOPS() macro to make this 134 + * DMA based drivers there is the DEFINE_DRM_GEM_DMA_FOPS() macro to make this 135 135 * simpler. 136 136 * 137 137 * The driver's &file_operations must be stored in &drm_driver.fops.
+147 -150
drivers/gpu/drm/drm_gem_cma_helper.c drivers/gpu/drm/drm_gem_dma_helper.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 2 /* 3 - * drm gem CMA (contiguous memory allocator) helper functions 3 + * drm gem DMA helper functions 4 4 * 5 5 * Copyright (C) 2012 Sascha Hauer, Pengutronix 6 6 * ··· 20 20 #include <drm/drm.h> 21 21 #include <drm/drm_device.h> 22 22 #include <drm/drm_drv.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_vma_manager.h> 25 25 26 26 /** 27 - * DOC: cma helpers 27 + * DOC: dma helpers 28 28 * 29 - * The DRM GEM/CMA helpers are a means to provide buffer objects that are 29 + * The DRM GEM/DMA helpers are a means to provide buffer objects that are 30 30 * presented to the device as a contiguous chunk of memory. This is useful 31 31 * for devices that do not support scatter-gather DMA (either directly or 32 32 * by using an intimately attached IOMMU). 33 - * 34 - * Despite the name, the DRM GEM/CMA helpers are not hardwired to use the 35 - * Contiguous Memory Allocator (CMA). 36 33 * 37 34 * For devices that access the memory bus through an (external) IOMMU then 38 35 * the buffer objects are allocated using a traditional page-based ··· 41 44 * objects that are physically contiguous in memory. 42 45 * 43 46 * For GEM callback helpers in struct &drm_gem_object functions, see likewise 44 - * named functions with an _object_ infix (e.g., drm_gem_cma_object_vmap() wraps 45 - * drm_gem_cma_vmap()). These helpers perform the necessary type conversion. 47 + * named functions with an _object_ infix (e.g., drm_gem_dma_object_vmap() wraps 48 + * drm_gem_dma_vmap()). These helpers perform the necessary type conversion. 46 49 */ 47 50 48 - static const struct drm_gem_object_funcs drm_gem_cma_default_funcs = { 49 - .free = drm_gem_cma_object_free, 50 - .print_info = drm_gem_cma_object_print_info, 51 - .get_sg_table = drm_gem_cma_object_get_sg_table, 52 - .vmap = drm_gem_cma_object_vmap, 53 - .mmap = drm_gem_cma_object_mmap, 54 - .vm_ops = &drm_gem_cma_vm_ops, 51 + static const struct drm_gem_object_funcs drm_gem_dma_default_funcs = { 52 + .free = drm_gem_dma_object_free, 53 + .print_info = drm_gem_dma_object_print_info, 54 + .get_sg_table = drm_gem_dma_object_get_sg_table, 55 + .vmap = drm_gem_dma_object_vmap, 56 + .mmap = drm_gem_dma_object_mmap, 57 + .vm_ops = &drm_gem_dma_vm_ops, 55 58 }; 56 59 57 60 /** 58 - * __drm_gem_cma_create - Create a GEM CMA object without allocating memory 61 + * __drm_gem_dma_create - Create a GEM DMA object without allocating memory 59 62 * @drm: DRM device 60 63 * @size: size of the object to allocate 61 64 * @private: true if used for internal purposes 62 65 * 63 - * This function creates and initializes a GEM CMA object of the given size, 66 + * This function creates and initializes a GEM DMA object of the given size, 64 67 * but doesn't allocate any memory to back the object. 65 68 * 66 69 * Returns: 67 - * A struct drm_gem_cma_object * on success or an ERR_PTR()-encoded negative 70 + * A struct drm_gem_dma_object * on success or an ERR_PTR()-encoded negative 68 71 * error code on failure. 69 72 */ 70 - static struct drm_gem_cma_object * 71 - __drm_gem_cma_create(struct drm_device *drm, size_t size, bool private) 73 + static struct drm_gem_dma_object * 74 + __drm_gem_dma_create(struct drm_device *drm, size_t size, bool private) 72 75 { 73 - struct drm_gem_cma_object *cma_obj; 76 + struct drm_gem_dma_object *dma_obj; 74 77 struct drm_gem_object *gem_obj; 75 78 int ret = 0; 76 79 ··· 78 81 gem_obj = drm->driver->gem_create_object(drm, size); 79 82 if (IS_ERR(gem_obj)) 80 83 return ERR_CAST(gem_obj); 81 - cma_obj = to_drm_gem_cma_obj(gem_obj); 84 + dma_obj = to_drm_gem_dma_obj(gem_obj); 82 85 } else { 83 - cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL); 84 - if (!cma_obj) 86 + dma_obj = kzalloc(sizeof(*dma_obj), GFP_KERNEL); 87 + if (!dma_obj) 85 88 return ERR_PTR(-ENOMEM); 86 - gem_obj = &cma_obj->base; 89 + gem_obj = &dma_obj->base; 87 90 } 88 91 89 92 if (!gem_obj->funcs) 90 - gem_obj->funcs = &drm_gem_cma_default_funcs; 93 + gem_obj->funcs = &drm_gem_dma_default_funcs; 91 94 92 95 if (private) { 93 96 drm_gem_private_object_init(drm, gem_obj, size); 94 97 95 98 /* Always use writecombine for dma-buf mappings */ 96 - cma_obj->map_noncoherent = false; 99 + dma_obj->map_noncoherent = false; 97 100 } else { 98 101 ret = drm_gem_object_init(drm, gem_obj, size); 99 102 } ··· 106 109 goto error; 107 110 } 108 111 109 - return cma_obj; 112 + return dma_obj; 110 113 111 114 error: 112 - kfree(cma_obj); 115 + kfree(dma_obj); 113 116 return ERR_PTR(ret); 114 117 } 115 118 116 119 /** 117 - * drm_gem_cma_create - allocate an object with the given size 120 + * drm_gem_dma_create - allocate an object with the given size 118 121 * @drm: DRM device 119 122 * @size: size of the object to allocate 120 123 * 121 - * This function creates a CMA GEM object and allocates memory as backing store. 124 + * This function creates a DMA GEM object and allocates memory as backing store. 122 125 * The allocated memory will occupy a contiguous chunk of bus address space. 123 126 * 124 127 * For devices that are directly connected to the memory bus then the allocated ··· 128 131 * requirements. 129 132 * 130 133 * Returns: 131 - * A struct drm_gem_cma_object * on success or an ERR_PTR()-encoded negative 134 + * A struct drm_gem_dma_object * on success or an ERR_PTR()-encoded negative 132 135 * error code on failure. 133 136 */ 134 - struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, 137 + struct drm_gem_dma_object *drm_gem_dma_create(struct drm_device *drm, 135 138 size_t size) 136 139 { 137 - struct drm_gem_cma_object *cma_obj; 140 + struct drm_gem_dma_object *dma_obj; 138 141 int ret; 139 142 140 143 size = round_up(size, PAGE_SIZE); 141 144 142 - cma_obj = __drm_gem_cma_create(drm, size, false); 143 - if (IS_ERR(cma_obj)) 144 - return cma_obj; 145 + dma_obj = __drm_gem_dma_create(drm, size, false); 146 + if (IS_ERR(dma_obj)) 147 + return dma_obj; 145 148 146 - if (cma_obj->map_noncoherent) { 147 - cma_obj->vaddr = dma_alloc_noncoherent(drm->dev, size, 148 - &cma_obj->paddr, 149 + if (dma_obj->map_noncoherent) { 150 + dma_obj->vaddr = dma_alloc_noncoherent(drm->dev, size, 151 + &dma_obj->paddr, 149 152 DMA_TO_DEVICE, 150 153 GFP_KERNEL | __GFP_NOWARN); 151 154 } else { 152 - cma_obj->vaddr = dma_alloc_wc(drm->dev, size, &cma_obj->paddr, 155 + dma_obj->vaddr = dma_alloc_wc(drm->dev, size, &dma_obj->paddr, 153 156 GFP_KERNEL | __GFP_NOWARN); 154 157 } 155 - if (!cma_obj->vaddr) { 158 + if (!dma_obj->vaddr) { 156 159 drm_dbg(drm, "failed to allocate buffer with size %zu\n", 157 160 size); 158 161 ret = -ENOMEM; 159 162 goto error; 160 163 } 161 164 162 - return cma_obj; 165 + return dma_obj; 163 166 164 167 error: 165 - drm_gem_object_put(&cma_obj->base); 168 + drm_gem_object_put(&dma_obj->base); 166 169 return ERR_PTR(ret); 167 170 } 168 - EXPORT_SYMBOL_GPL(drm_gem_cma_create); 171 + EXPORT_SYMBOL_GPL(drm_gem_dma_create); 169 172 170 173 /** 171 - * drm_gem_cma_create_with_handle - allocate an object with the given size and 174 + * drm_gem_dma_create_with_handle - allocate an object with the given size and 172 175 * return a GEM handle to it 173 176 * @file_priv: DRM file-private structure to register the handle for 174 177 * @drm: DRM device 175 178 * @size: size of the object to allocate 176 179 * @handle: return location for the GEM handle 177 180 * 178 - * This function creates a CMA GEM object, allocating a chunk of memory as 181 + * This function creates a DMA GEM object, allocating a chunk of memory as 179 182 * backing store. The GEM object is then added to the list of object associated 180 183 * with the given file and a handle to it is returned. 181 184 * 182 185 * The allocated memory will occupy a contiguous chunk of bus address space. 183 - * See drm_gem_cma_create() for more details. 186 + * See drm_gem_dma_create() for more details. 184 187 * 185 188 * Returns: 186 - * A struct drm_gem_cma_object * on success or an ERR_PTR()-encoded negative 189 + * A struct drm_gem_dma_object * on success or an ERR_PTR()-encoded negative 187 190 * error code on failure. 188 191 */ 189 - static struct drm_gem_cma_object * 190 - drm_gem_cma_create_with_handle(struct drm_file *file_priv, 192 + static struct drm_gem_dma_object * 193 + drm_gem_dma_create_with_handle(struct drm_file *file_priv, 191 194 struct drm_device *drm, size_t size, 192 195 uint32_t *handle) 193 196 { 194 - struct drm_gem_cma_object *cma_obj; 197 + struct drm_gem_dma_object *dma_obj; 195 198 struct drm_gem_object *gem_obj; 196 199 int ret; 197 200 198 - cma_obj = drm_gem_cma_create(drm, size); 199 - if (IS_ERR(cma_obj)) 200 - return cma_obj; 201 + dma_obj = drm_gem_dma_create(drm, size); 202 + if (IS_ERR(dma_obj)) 203 + return dma_obj; 201 204 202 - gem_obj = &cma_obj->base; 205 + gem_obj = &dma_obj->base; 203 206 204 207 /* 205 208 * allocate a id of idr table where the obj is registered ··· 211 214 if (ret) 212 215 return ERR_PTR(ret); 213 216 214 - return cma_obj; 217 + return dma_obj; 215 218 } 216 219 217 220 /** 218 - * drm_gem_cma_free - free resources associated with a CMA GEM object 219 - * @cma_obj: CMA GEM object to free 221 + * drm_gem_dma_free - free resources associated with a DMA GEM object 222 + * @dma_obj: DMA GEM object to free 220 223 * 221 - * This function frees the backing memory of the CMA GEM object, cleans up the 224 + * This function frees the backing memory of the DMA GEM object, cleans up the 222 225 * GEM object state and frees the memory used to store the object itself. 223 226 * If the buffer is imported and the virtual address is set, it is released. 224 227 */ 225 - void drm_gem_cma_free(struct drm_gem_cma_object *cma_obj) 228 + void drm_gem_dma_free(struct drm_gem_dma_object *dma_obj) 226 229 { 227 - struct drm_gem_object *gem_obj = &cma_obj->base; 228 - struct iosys_map map = IOSYS_MAP_INIT_VADDR(cma_obj->vaddr); 230 + struct drm_gem_object *gem_obj = &dma_obj->base; 231 + struct iosys_map map = IOSYS_MAP_INIT_VADDR(dma_obj->vaddr); 229 232 230 233 if (gem_obj->import_attach) { 231 - if (cma_obj->vaddr) 234 + if (dma_obj->vaddr) 232 235 dma_buf_vunmap(gem_obj->import_attach->dmabuf, &map); 233 - drm_prime_gem_destroy(gem_obj, cma_obj->sgt); 234 - } else if (cma_obj->vaddr) { 235 - if (cma_obj->map_noncoherent) 236 - dma_free_noncoherent(gem_obj->dev->dev, cma_obj->base.size, 237 - cma_obj->vaddr, cma_obj->paddr, 236 + drm_prime_gem_destroy(gem_obj, dma_obj->sgt); 237 + } else if (dma_obj->vaddr) { 238 + if (dma_obj->map_noncoherent) 239 + dma_free_noncoherent(gem_obj->dev->dev, dma_obj->base.size, 240 + dma_obj->vaddr, dma_obj->paddr, 238 241 DMA_TO_DEVICE); 239 242 else 240 - dma_free_wc(gem_obj->dev->dev, cma_obj->base.size, 241 - cma_obj->vaddr, cma_obj->paddr); 243 + dma_free_wc(gem_obj->dev->dev, dma_obj->base.size, 244 + dma_obj->vaddr, dma_obj->paddr); 242 245 } 243 246 244 247 drm_gem_object_release(gem_obj); 245 248 246 - kfree(cma_obj); 249 + kfree(dma_obj); 247 250 } 248 - EXPORT_SYMBOL_GPL(drm_gem_cma_free); 251 + EXPORT_SYMBOL_GPL(drm_gem_dma_free); 249 252 250 253 /** 251 - * drm_gem_cma_dumb_create_internal - create a dumb buffer object 254 + * drm_gem_dma_dumb_create_internal - create a dumb buffer object 252 255 * @file_priv: DRM file-private structure to create the dumb buffer for 253 256 * @drm: DRM device 254 257 * @args: IOCTL data ··· 261 264 * Returns: 262 265 * 0 on success or a negative error code on failure. 263 266 */ 264 - int drm_gem_cma_dumb_create_internal(struct drm_file *file_priv, 267 + int drm_gem_dma_dumb_create_internal(struct drm_file *file_priv, 265 268 struct drm_device *drm, 266 269 struct drm_mode_create_dumb *args) 267 270 { 268 271 unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8); 269 - struct drm_gem_cma_object *cma_obj; 272 + struct drm_gem_dma_object *dma_obj; 270 273 271 274 if (args->pitch < min_pitch) 272 275 args->pitch = min_pitch; ··· 274 277 if (args->size < args->pitch * args->height) 275 278 args->size = args->pitch * args->height; 276 279 277 - cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, 280 + dma_obj = drm_gem_dma_create_with_handle(file_priv, drm, args->size, 278 281 &args->handle); 279 - return PTR_ERR_OR_ZERO(cma_obj); 282 + return PTR_ERR_OR_ZERO(dma_obj); 280 283 } 281 - EXPORT_SYMBOL_GPL(drm_gem_cma_dumb_create_internal); 284 + EXPORT_SYMBOL_GPL(drm_gem_dma_dumb_create_internal); 282 285 283 286 /** 284 - * drm_gem_cma_dumb_create - create a dumb buffer object 287 + * drm_gem_dma_dumb_create - create a dumb buffer object 285 288 * @file_priv: DRM file-private structure to create the dumb buffer for 286 289 * @drm: DRM device 287 290 * @args: IOCTL data ··· 293 296 * 294 297 * For hardware with additional restrictions, drivers can adjust the fields 295 298 * set up by userspace and pass the IOCTL data along to the 296 - * drm_gem_cma_dumb_create_internal() function. 299 + * drm_gem_dma_dumb_create_internal() function. 297 300 * 298 301 * Returns: 299 302 * 0 on success or a negative error code on failure. 300 303 */ 301 - int drm_gem_cma_dumb_create(struct drm_file *file_priv, 304 + int drm_gem_dma_dumb_create(struct drm_file *file_priv, 302 305 struct drm_device *drm, 303 306 struct drm_mode_create_dumb *args) 304 307 { 305 - struct drm_gem_cma_object *cma_obj; 308 + struct drm_gem_dma_object *dma_obj; 306 309 307 310 args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8); 308 311 args->size = args->pitch * args->height; 309 312 310 - cma_obj = drm_gem_cma_create_with_handle(file_priv, drm, args->size, 313 + dma_obj = drm_gem_dma_create_with_handle(file_priv, drm, args->size, 311 314 &args->handle); 312 - return PTR_ERR_OR_ZERO(cma_obj); 315 + return PTR_ERR_OR_ZERO(dma_obj); 313 316 } 314 - EXPORT_SYMBOL_GPL(drm_gem_cma_dumb_create); 317 + EXPORT_SYMBOL_GPL(drm_gem_dma_dumb_create); 315 318 316 - const struct vm_operations_struct drm_gem_cma_vm_ops = { 319 + const struct vm_operations_struct drm_gem_dma_vm_ops = { 317 320 .open = drm_gem_vm_open, 318 321 .close = drm_gem_vm_close, 319 322 }; 320 - EXPORT_SYMBOL_GPL(drm_gem_cma_vm_ops); 323 + EXPORT_SYMBOL_GPL(drm_gem_dma_vm_ops); 321 324 322 325 #ifndef CONFIG_MMU 323 326 /** 324 - * drm_gem_cma_get_unmapped_area - propose address for mapping in noMMU cases 327 + * drm_gem_dma_get_unmapped_area - propose address for mapping in noMMU cases 325 328 * @filp: file object 326 329 * @addr: memory address 327 330 * @len: buffer size ··· 336 339 * Returns: 337 340 * mapping address on success or a negative error code on failure. 338 341 */ 339 - unsigned long drm_gem_cma_get_unmapped_area(struct file *filp, 342 + unsigned long drm_gem_dma_get_unmapped_area(struct file *filp, 340 343 unsigned long addr, 341 344 unsigned long len, 342 345 unsigned long pgoff, 343 346 unsigned long flags) 344 347 { 345 - struct drm_gem_cma_object *cma_obj; 348 + struct drm_gem_dma_object *dma_obj; 346 349 struct drm_gem_object *obj = NULL; 347 350 struct drm_file *priv = filp->private_data; 348 351 struct drm_device *dev = priv->minor->dev; ··· 381 384 return -EACCES; 382 385 } 383 386 384 - cma_obj = to_drm_gem_cma_obj(obj); 387 + dma_obj = to_drm_gem_dma_obj(obj); 385 388 386 389 drm_gem_object_put(obj); 387 390 388 - return cma_obj->vaddr ? (unsigned long)cma_obj->vaddr : -EINVAL; 391 + return dma_obj->vaddr ? (unsigned long)dma_obj->vaddr : -EINVAL; 389 392 } 390 - EXPORT_SYMBOL_GPL(drm_gem_cma_get_unmapped_area); 393 + EXPORT_SYMBOL_GPL(drm_gem_dma_get_unmapped_area); 391 394 #endif 392 395 393 396 /** 394 - * drm_gem_cma_print_info() - Print &drm_gem_cma_object info for debugfs 395 - * @cma_obj: CMA GEM object 397 + * drm_gem_dma_print_info() - Print &drm_gem_dma_object info for debugfs 398 + * @dma_obj: DMA GEM object 396 399 * @p: DRM printer 397 400 * @indent: Tab indentation level 398 401 * 399 402 * This function prints paddr and vaddr for use in e.g. debugfs output. 400 403 */ 401 - void drm_gem_cma_print_info(const struct drm_gem_cma_object *cma_obj, 404 + void drm_gem_dma_print_info(const struct drm_gem_dma_object *dma_obj, 402 405 struct drm_printer *p, unsigned int indent) 403 406 { 404 - drm_printf_indent(p, indent, "paddr=%pad\n", &cma_obj->paddr); 405 - drm_printf_indent(p, indent, "vaddr=%p\n", cma_obj->vaddr); 407 + drm_printf_indent(p, indent, "paddr=%pad\n", &dma_obj->paddr); 408 + drm_printf_indent(p, indent, "vaddr=%p\n", dma_obj->vaddr); 406 409 } 407 - EXPORT_SYMBOL(drm_gem_cma_print_info); 410 + EXPORT_SYMBOL(drm_gem_dma_print_info); 408 411 409 412 /** 410 - * drm_gem_cma_get_sg_table - provide a scatter/gather table of pinned 411 - * pages for a CMA GEM object 412 - * @cma_obj: CMA GEM object 413 + * drm_gem_dma_get_sg_table - provide a scatter/gather table of pinned 414 + * pages for a DMA GEM object 415 + * @dma_obj: DMA GEM object 413 416 * 414 417 * This function exports a scatter/gather table by calling the standard 415 418 * DMA mapping API. ··· 417 420 * Returns: 418 421 * A pointer to the scatter/gather table of pinned pages or NULL on failure. 419 422 */ 420 - struct sg_table *drm_gem_cma_get_sg_table(struct drm_gem_cma_object *cma_obj) 423 + struct sg_table *drm_gem_dma_get_sg_table(struct drm_gem_dma_object *dma_obj) 421 424 { 422 - struct drm_gem_object *obj = &cma_obj->base; 425 + struct drm_gem_object *obj = &dma_obj->base; 423 426 struct sg_table *sgt; 424 427 int ret; 425 428 ··· 427 430 if (!sgt) 428 431 return ERR_PTR(-ENOMEM); 429 432 430 - ret = dma_get_sgtable(obj->dev->dev, sgt, cma_obj->vaddr, 431 - cma_obj->paddr, obj->size); 433 + ret = dma_get_sgtable(obj->dev->dev, sgt, dma_obj->vaddr, 434 + dma_obj->paddr, obj->size); 432 435 if (ret < 0) 433 436 goto out; 434 437 ··· 438 441 kfree(sgt); 439 442 return ERR_PTR(ret); 440 443 } 441 - EXPORT_SYMBOL_GPL(drm_gem_cma_get_sg_table); 444 + EXPORT_SYMBOL_GPL(drm_gem_dma_get_sg_table); 442 445 443 446 /** 444 - * drm_gem_cma_prime_import_sg_table - produce a CMA GEM object from another 447 + * drm_gem_dma_prime_import_sg_table - produce a DMA GEM object from another 445 448 * driver's scatter/gather table of pinned pages 446 449 * @dev: device to import into 447 450 * @attach: DMA-BUF attachment ··· 450 453 * This function imports a scatter/gather table exported via DMA-BUF by 451 454 * another driver. Imported buffers must be physically contiguous in memory 452 455 * (i.e. the scatter/gather table must contain a single entry). Drivers that 453 - * use the CMA helpers should set this as their 456 + * use the DMA helpers should set this as their 454 457 * &drm_driver.gem_prime_import_sg_table callback. 455 458 * 456 459 * Returns: ··· 458 461 * error code on failure. 459 462 */ 460 463 struct drm_gem_object * 461 - drm_gem_cma_prime_import_sg_table(struct drm_device *dev, 464 + drm_gem_dma_prime_import_sg_table(struct drm_device *dev, 462 465 struct dma_buf_attachment *attach, 463 466 struct sg_table *sgt) 464 467 { 465 - struct drm_gem_cma_object *cma_obj; 468 + struct drm_gem_dma_object *dma_obj; 466 469 467 470 /* check if the entries in the sg_table are contiguous */ 468 471 if (drm_prime_get_contiguous_size(sgt) < attach->dmabuf->size) 469 472 return ERR_PTR(-EINVAL); 470 473 471 - /* Create a CMA GEM buffer. */ 472 - cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size, true); 473 - if (IS_ERR(cma_obj)) 474 - return ERR_CAST(cma_obj); 474 + /* Create a DMA GEM buffer. */ 475 + dma_obj = __drm_gem_dma_create(dev, attach->dmabuf->size, true); 476 + if (IS_ERR(dma_obj)) 477 + return ERR_CAST(dma_obj); 475 478 476 - cma_obj->paddr = sg_dma_address(sgt->sgl); 477 - cma_obj->sgt = sgt; 479 + dma_obj->paddr = sg_dma_address(sgt->sgl); 480 + dma_obj->sgt = sgt; 478 481 479 - DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &cma_obj->paddr, attach->dmabuf->size); 482 + DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &dma_obj->paddr, attach->dmabuf->size); 480 483 481 - return &cma_obj->base; 484 + return &dma_obj->base; 482 485 } 483 - EXPORT_SYMBOL_GPL(drm_gem_cma_prime_import_sg_table); 486 + EXPORT_SYMBOL_GPL(drm_gem_dma_prime_import_sg_table); 484 487 485 488 /** 486 - * drm_gem_cma_vmap - map a CMA GEM object into the kernel's virtual 489 + * drm_gem_dma_vmap - map a DMA GEM object into the kernel's virtual 487 490 * address space 488 - * @cma_obj: CMA GEM object 489 - * @map: Returns the kernel virtual address of the CMA GEM object's backing 491 + * @dma_obj: DMA GEM object 492 + * @map: Returns the kernel virtual address of the DMA GEM object's backing 490 493 * store. 491 494 * 492 495 * This function maps a buffer into the kernel's virtual address space. 493 - * Since the CMA buffers are already mapped into the kernel virtual address 496 + * Since the DMA buffers are already mapped into the kernel virtual address 494 497 * space this simply returns the cached virtual address. 495 498 * 496 499 * Returns: 497 500 * 0 on success, or a negative error code otherwise. 498 501 */ 499 - int drm_gem_cma_vmap(struct drm_gem_cma_object *cma_obj, 502 + int drm_gem_dma_vmap(struct drm_gem_dma_object *dma_obj, 500 503 struct iosys_map *map) 501 504 { 502 - iosys_map_set_vaddr(map, cma_obj->vaddr); 505 + iosys_map_set_vaddr(map, dma_obj->vaddr); 503 506 504 507 return 0; 505 508 } 506 - EXPORT_SYMBOL_GPL(drm_gem_cma_vmap); 509 + EXPORT_SYMBOL_GPL(drm_gem_dma_vmap); 507 510 508 511 /** 509 - * drm_gem_cma_mmap - memory-map an exported CMA GEM object 510 - * @cma_obj: CMA GEM object 512 + * drm_gem_dma_mmap - memory-map an exported DMA GEM object 513 + * @dma_obj: DMA GEM object 511 514 * @vma: VMA for the area to be mapped 512 515 * 513 516 * This function maps a buffer into a userspace process's address space. ··· 517 520 * Returns: 518 521 * 0 on success or a negative error code on failure. 519 522 */ 520 - int drm_gem_cma_mmap(struct drm_gem_cma_object *cma_obj, struct vm_area_struct *vma) 523 + int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct vm_area_struct *vma) 521 524 { 522 - struct drm_gem_object *obj = &cma_obj->base; 525 + struct drm_gem_object *obj = &dma_obj->base; 523 526 int ret; 524 527 525 528 /* ··· 531 534 vma->vm_flags &= ~VM_PFNMAP; 532 535 vma->vm_flags |= VM_DONTEXPAND; 533 536 534 - if (cma_obj->map_noncoherent) { 537 + if (dma_obj->map_noncoherent) { 535 538 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 536 539 537 - ret = dma_mmap_pages(cma_obj->base.dev->dev, 540 + ret = dma_mmap_pages(dma_obj->base.dev->dev, 538 541 vma, vma->vm_end - vma->vm_start, 539 - virt_to_page(cma_obj->vaddr)); 542 + virt_to_page(dma_obj->vaddr)); 540 543 } else { 541 - ret = dma_mmap_wc(cma_obj->base.dev->dev, vma, cma_obj->vaddr, 542 - cma_obj->paddr, vma->vm_end - vma->vm_start); 544 + ret = dma_mmap_wc(dma_obj->base.dev->dev, vma, dma_obj->vaddr, 545 + dma_obj->paddr, vma->vm_end - vma->vm_start); 543 546 } 544 547 if (ret) 545 548 drm_gem_vm_close(vma); 546 549 547 550 return ret; 548 551 } 549 - EXPORT_SYMBOL_GPL(drm_gem_cma_mmap); 552 + EXPORT_SYMBOL_GPL(drm_gem_dma_mmap); 550 553 551 554 /** 552 - * drm_gem_cma_prime_import_sg_table_vmap - PRIME import another driver's 555 + * drm_gem_dma_prime_import_sg_table_vmap - PRIME import another driver's 553 556 * scatter/gather table and get the virtual address of the buffer 554 557 * @dev: DRM device 555 558 * @attach: DMA-BUF attachment 556 559 * @sgt: Scatter/gather table of pinned pages 557 560 * 558 561 * This function imports a scatter/gather table using 559 - * drm_gem_cma_prime_import_sg_table() and uses dma_buf_vmap() to get the kernel 560 - * virtual address. This ensures that a CMA GEM object always has its virtual 562 + * drm_gem_dma_prime_import_sg_table() and uses dma_buf_vmap() to get the kernel 563 + * virtual address. This ensures that a DMA GEM object always has its virtual 561 564 * address set. This address is released when the object is freed. 562 565 * 563 566 * This function can be used as the &drm_driver.gem_prime_import_sg_table 564 - * callback. The &DRM_GEM_CMA_DRIVER_OPS_VMAP macro provides a shortcut to set 567 + * callback. The &DRM_GEM_DMA_DRIVER_OPS_VMAP macro provides a shortcut to set 565 568 * the necessary DRM driver operations. 566 569 * 567 570 * Returns: ··· 569 572 * error code on failure. 570 573 */ 571 574 struct drm_gem_object * 572 - drm_gem_cma_prime_import_sg_table_vmap(struct drm_device *dev, 575 + drm_gem_dma_prime_import_sg_table_vmap(struct drm_device *dev, 573 576 struct dma_buf_attachment *attach, 574 577 struct sg_table *sgt) 575 578 { 576 - struct drm_gem_cma_object *cma_obj; 579 + struct drm_gem_dma_object *dma_obj; 577 580 struct drm_gem_object *obj; 578 581 struct iosys_map map; 579 582 int ret; ··· 584 587 return ERR_PTR(ret); 585 588 } 586 589 587 - obj = drm_gem_cma_prime_import_sg_table(dev, attach, sgt); 590 + obj = drm_gem_dma_prime_import_sg_table(dev, attach, sgt); 588 591 if (IS_ERR(obj)) { 589 592 dma_buf_vunmap(attach->dmabuf, &map); 590 593 return obj; 591 594 } 592 595 593 - cma_obj = to_drm_gem_cma_obj(obj); 594 - cma_obj->vaddr = map.vaddr; 596 + dma_obj = to_drm_gem_dma_obj(obj); 597 + dma_obj->vaddr = map.vaddr; 595 598 596 599 return obj; 597 600 } 598 - EXPORT_SYMBOL(drm_gem_cma_prime_import_sg_table_vmap); 601 + EXPORT_SYMBOL(drm_gem_dma_prime_import_sg_table_vmap); 599 602 600 - MODULE_DESCRIPTION("DRM CMA memory-management helpers"); 603 + MODULE_DESCRIPTION("DRM DMA memory-management helpers"); 601 604 MODULE_IMPORT_NS(DMA_BUF); 602 605 MODULE_LICENSE("GPL");
+1 -1
drivers/gpu/drm/drm_mipi_dbi.c
··· 1136 1136 /* 1137 1137 * Even though it's not the SPI device that does DMA (the master does), 1138 1138 * the dma mask is necessary for the dma_alloc_wc() in the GEM code 1139 - * (e.g., drm_gem_cma_create()). The dma_addr returned will be a physical 1139 + * (e.g., drm_gem_dma_create()). The dma_addr returned will be a physical 1140 1140 * address which might be different from the bus address, but this is 1141 1141 * not a problem since the address will not be used. 1142 1142 * The virtual address is used in the transfer and the SPI core
+1 -1
drivers/gpu/drm/fsl-dcu/Kconfig
··· 3 3 tristate "DRM Support for Freescale DCU" 4 4 depends on DRM && OF && ARM && COMMON_CLK 5 5 select BACKLIGHT_CLASS_DEVICE 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_KMS_HELPER 8 8 select DRM_PANEL 9 9 select REGMAP_MMIO
+3 -3
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
··· 21 21 #include <drm/drm_atomic_helper.h> 22 22 #include <drm/drm_drv.h> 23 23 #include <drm/drm_fb_helper.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_modeset_helper.h> 26 26 #include <drm/drm_module.h> 27 27 #include <drm/drm_probe_helper.h> ··· 149 149 dev->dev_private = NULL; 150 150 } 151 151 152 - DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops); 152 + DEFINE_DRM_GEM_DMA_FOPS(fsl_dcu_drm_fops); 153 153 154 154 static const struct drm_driver fsl_dcu_drm_driver = { 155 155 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 156 156 .load = fsl_dcu_load, 157 157 .unload = fsl_dcu_unload, 158 - DRM_GEM_CMA_DRIVER_OPS, 158 + DRM_GEM_DMA_DRIVER_OPS, 159 159 .fops = &fsl_dcu_drm_fops, 160 160 .name = "fsl-dcu-drm", 161 161 .desc = "Freescale DCU DRM",
+2 -2
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
··· 13 13 #include <drm/drm_fb_dma_helper.h> 14 14 #include <drm/drm_fourcc.h> 15 15 #include <drm/drm_framebuffer.h> 16 - #include <drm/drm_gem_cma_helper.h> 16 + #include <drm/drm_gem_dma_helper.h> 17 17 #include <drm/drm_plane_helper.h> 18 18 #include <drm/drm_probe_helper.h> 19 19 ··· 84 84 struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, 85 85 plane); 86 86 struct drm_framebuffer *fb = plane->state->fb; 87 - struct drm_gem_cma_object *gem; 87 + struct drm_gem_dma_object *gem; 88 88 unsigned int alpha = DCU_LAYER_AB_NONE, bpp; 89 89 int index; 90 90
+1 -1
drivers/gpu/drm/hisilicon/kirin/Kconfig
··· 3 3 tristate "DRM Support for Hisilicon Kirin series SoCs Platform" 4 4 depends on DRM && OF && ARM64 5 5 select DRM_KMS_HELPER 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_MIPI_DSI 8 8 help 9 9 Choose this option if you have a hisilicon Kirin chipsets(hi6220).
+4 -4
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
··· 27 27 #include <drm/drm_fb_dma_helper.h> 28 28 #include <drm/drm_fourcc.h> 29 29 #include <drm/drm_framebuffer.h> 30 - #include <drm/drm_gem_cma_helper.h> 30 + #include <drm/drm_gem_dma_helper.h> 31 31 #include <drm/drm_probe_helper.h> 32 32 #include <drm/drm_vblank.h> 33 33 #include <drm/drm_gem_framebuffer_helper.h> ··· 548 548 static void ade_rdma_set(void __iomem *base, struct drm_framebuffer *fb, 549 549 u32 ch, u32 y, u32 in_h, u32 fmt) 550 550 { 551 - struct drm_gem_cma_object *obj = drm_fb_dma_get_gem_obj(fb, 0); 551 + struct drm_gem_dma_object *obj = drm_fb_dma_get_gem_obj(fb, 0); 552 552 u32 reg_ctrl, reg_addr, reg_size, reg_stride, reg_space, reg_en; 553 553 u32 stride = fb->pitches[0]; 554 554 u32 addr = (u32)obj->paddr + y * stride; ··· 919 919 920 920 }; 921 921 922 - DEFINE_DRM_GEM_CMA_FOPS(ade_fops); 922 + DEFINE_DRM_GEM_DMA_FOPS(ade_fops); 923 923 924 924 static const struct drm_driver ade_driver = { 925 925 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 926 926 .fops = &ade_fops, 927 - DRM_GEM_CMA_DRIVER_OPS, 927 + DRM_GEM_DMA_DRIVER_OPS, 928 928 .name = "kirin", 929 929 .desc = "Hisilicon Kirin620 SoC DRM Driver", 930 930 .date = "20150718",
+1 -1
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
··· 20 20 #include <drm/drm_atomic_helper.h> 21 21 #include <drm/drm_drv.h> 22 22 #include <drm/drm_fb_helper.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_gem_framebuffer_helper.h> 25 25 #include <drm/drm_module.h> 26 26 #include <drm/drm_of.h>
+1 -1
drivers/gpu/drm/imx/Kconfig
··· 3 3 tristate "DRM Support for Freescale i.MX" 4 4 select DRM_KMS_HELPER 5 5 select VIDEOMODE_HELPERS 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_KMS_HELPER 8 8 depends on DRM && (ARCH_MXC || ARCH_MULTIPLATFORM || COMPILE_TEST) 9 9 depends on IMX_IPUV3_CORE
+1 -1
drivers/gpu/drm/imx/dcss/Kconfig
··· 2 2 tristate "i.MX8MQ DCSS" 3 3 select IMX_IRQSTEER 4 4 select DRM_KMS_HELPER 5 - select DRM_GEM_CMA_HELPER 5 + select DRM_GEM_DMA_HELPER 6 6 select VIDEOMODE_HELPERS 7 7 depends on DRM && ARCH_MXC && ARM64 8 8 help
+3 -3
drivers/gpu/drm/imx/dcss/dcss-kms.c
··· 8 8 #include <drm/drm_bridge_connector.h> 9 9 #include <drm/drm_drv.h> 10 10 #include <drm/drm_fb_helper.h> 11 - #include <drm/drm_gem_cma_helper.h> 11 + #include <drm/drm_gem_dma_helper.h> 12 12 #include <drm/drm_gem_framebuffer_helper.h> 13 13 #include <drm/drm_of.h> 14 14 #include <drm/drm_probe_helper.h> ··· 17 17 #include "dcss-dev.h" 18 18 #include "dcss-kms.h" 19 19 20 - DEFINE_DRM_GEM_CMA_FOPS(dcss_cma_fops); 20 + DEFINE_DRM_GEM_DMA_FOPS(dcss_cma_fops); 21 21 22 22 static const struct drm_mode_config_funcs dcss_drm_mode_config_funcs = { 23 23 .fb_create = drm_gem_fb_create, ··· 28 28 29 29 static const struct drm_driver dcss_kms_driver = { 30 30 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, 31 - DRM_GEM_CMA_DRIVER_OPS, 31 + DRM_GEM_DMA_DRIVER_OPS, 32 32 .fops = &dcss_cma_fops, 33 33 .name = "imx-dcss", 34 34 .desc = "i.MX8MQ Display Subsystem",
+8 -8
drivers/gpu/drm/imx/dcss/dcss-plane.c
··· 9 9 #include <drm/drm_fb_dma_helper.h> 10 10 #include <drm/drm_framebuffer.h> 11 11 #include <drm/drm_gem_atomic_helper.h> 12 - #include <drm/drm_gem_cma_helper.h> 12 + #include <drm/drm_gem_dma_helper.h> 13 13 14 14 #include "dcss-dev.h" 15 15 #include "dcss-kms.h" ··· 147 147 struct dcss_dev *dcss = plane->dev->dev_private; 148 148 struct drm_framebuffer *fb = new_plane_state->fb; 149 149 bool is_primary_plane = plane->type == DRM_PLANE_TYPE_PRIMARY; 150 - struct drm_gem_cma_object *cma_obj; 150 + struct drm_gem_dma_object *dma_obj; 151 151 struct drm_crtc_state *crtc_state; 152 152 int hdisplay, vdisplay; 153 153 int min, max; ··· 156 156 if (!fb || !new_plane_state->crtc) 157 157 return 0; 158 158 159 - cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 160 - WARN_ON(!cma_obj); 159 + dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 160 + WARN_ON(!dma_obj); 161 161 162 162 crtc_state = drm_atomic_get_existing_crtc_state(state, 163 163 new_plane_state->crtc); ··· 218 218 struct dcss_dev *dcss = plane->dev->dev_private; 219 219 struct drm_framebuffer *fb = state->fb; 220 220 const struct drm_format_info *format = fb->format; 221 - struct drm_gem_cma_object *cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 221 + struct drm_gem_dma_object *dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 222 222 unsigned long p1_ba = 0, p2_ba = 0; 223 223 224 224 if (!format->is_yuv || 225 225 format->format == DRM_FORMAT_NV12 || 226 226 format->format == DRM_FORMAT_NV21) 227 - p1_ba = cma_obj->paddr + fb->offsets[0] + 227 + p1_ba = dma_obj->paddr + fb->offsets[0] + 228 228 fb->pitches[0] * (state->src.y1 >> 16) + 229 229 format->char_per_block[0] * (state->src.x1 >> 16); 230 230 else if (format->format == DRM_FORMAT_UYVY || 231 231 format->format == DRM_FORMAT_VYUY || 232 232 format->format == DRM_FORMAT_YUYV || 233 233 format->format == DRM_FORMAT_YVYU) 234 - p1_ba = cma_obj->paddr + fb->offsets[0] + 234 + p1_ba = dma_obj->paddr + fb->offsets[0] + 235 235 fb->pitches[0] * (state->src.y1 >> 16) + 236 236 2 * format->char_per_block[0] * (state->src.x1 >> 17); 237 237 238 238 if (format->format == DRM_FORMAT_NV12 || 239 239 format->format == DRM_FORMAT_NV21) 240 - p2_ba = cma_obj->paddr + fb->offsets[1] + 240 + p2_ba = dma_obj->paddr + fb->offsets[1] + 241 241 (((fb->pitches[1] >> 1) * (state->src.y1 >> 17) + 242 242 (state->src.x1 >> 17)) << 1); 243 243
+4 -4
drivers/gpu/drm/imx/imx-drm-core.c
··· 17 17 #include <drm/drm_atomic_helper.h> 18 18 #include <drm/drm_drv.h> 19 19 #include <drm/drm_fb_helper.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_gem_framebuffer_helper.h> 22 22 #include <drm/drm_managed.h> 23 23 #include <drm/drm_of.h> ··· 32 32 static int legacyfb_depth = 16; 33 33 module_param(legacyfb_depth, int, 0444); 34 34 35 - DEFINE_DRM_GEM_CMA_FOPS(imx_drm_driver_fops); 35 + DEFINE_DRM_GEM_DMA_FOPS(imx_drm_driver_fops); 36 36 37 37 void imx_drm_connector_destroy(struct drm_connector *connector) 38 38 { ··· 152 152 153 153 args->width = ALIGN(width, 8); 154 154 155 - ret = drm_gem_cma_dumb_create(file_priv, drm, args); 155 + ret = drm_gem_dma_dumb_create(file_priv, drm, args); 156 156 if (ret) 157 157 return ret; 158 158 ··· 162 162 163 163 static const struct drm_driver imx_drm_driver = { 164 164 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, 165 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(imx_drm_dumb_create), 165 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(imx_drm_dumb_create), 166 166 .ioctls = imx_drm_ioctls, 167 167 .num_ioctls = ARRAY_SIZE(imx_drm_ioctls), 168 168 .fops = &imx_drm_driver_fops,
+1 -1
drivers/gpu/drm/imx/imx-drm.h
··· 32 32 33 33 void imx_drm_mode_config_init(struct drm_device *drm); 34 34 35 - struct drm_gem_cma_object *imx_drm_fb_get_obj(struct drm_framebuffer *fb); 35 + struct drm_gem_dma_object *imx_drm_fb_get_obj(struct drm_framebuffer *fb); 36 36 37 37 int imx_drm_encoder_parse_of(struct drm_device *drm, 38 38 struct drm_encoder *encoder, struct device_node *np);
+1 -1
drivers/gpu/drm/imx/ipuv3-crtc.c
··· 18 18 19 19 #include <drm/drm_atomic.h> 20 20 #include <drm/drm_atomic_helper.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_managed.h> 23 23 #include <drm/drm_probe_helper.h> 24 24 #include <drm/drm_vblank.h>
+13 -13
drivers/gpu/drm/imx/ipuv3-plane.c
··· 12 12 #include <drm/drm_fourcc.h> 13 13 #include <drm/drm_framebuffer.h> 14 14 #include <drm/drm_gem_atomic_helper.h> 15 - #include <drm/drm_gem_cma_helper.h> 15 + #include <drm/drm_gem_dma_helper.h> 16 16 #include <drm/drm_managed.h> 17 17 18 18 #include <video/imx-ipu-v3.h> ··· 125 125 drm_plane_state_to_eba(struct drm_plane_state *state, int plane) 126 126 { 127 127 struct drm_framebuffer *fb = state->fb; 128 - struct drm_gem_cma_object *cma_obj; 128 + struct drm_gem_dma_object *dma_obj; 129 129 int x = state->src.x1 >> 16; 130 130 int y = state->src.y1 >> 16; 131 131 132 - cma_obj = drm_fb_dma_get_gem_obj(fb, plane); 133 - BUG_ON(!cma_obj); 132 + dma_obj = drm_fb_dma_get_gem_obj(fb, plane); 133 + BUG_ON(!dma_obj); 134 134 135 - return cma_obj->paddr + fb->offsets[plane] + fb->pitches[plane] * y + 135 + return dma_obj->paddr + fb->offsets[plane] + fb->pitches[plane] * y + 136 136 fb->format->cpp[plane] * x; 137 137 } 138 138 ··· 140 140 drm_plane_state_to_ubo(struct drm_plane_state *state) 141 141 { 142 142 struct drm_framebuffer *fb = state->fb; 143 - struct drm_gem_cma_object *cma_obj; 143 + struct drm_gem_dma_object *dma_obj; 144 144 unsigned long eba = drm_plane_state_to_eba(state, 0); 145 145 int x = state->src.x1 >> 16; 146 146 int y = state->src.y1 >> 16; 147 147 148 - cma_obj = drm_fb_dma_get_gem_obj(fb, 1); 149 - BUG_ON(!cma_obj); 148 + dma_obj = drm_fb_dma_get_gem_obj(fb, 1); 149 + BUG_ON(!dma_obj); 150 150 151 151 x /= fb->format->hsub; 152 152 y /= fb->format->vsub; 153 153 154 - return cma_obj->paddr + fb->offsets[1] + fb->pitches[1] * y + 154 + return dma_obj->paddr + fb->offsets[1] + fb->pitches[1] * y + 155 155 fb->format->cpp[1] * x - eba; 156 156 } 157 157 ··· 159 159 drm_plane_state_to_vbo(struct drm_plane_state *state) 160 160 { 161 161 struct drm_framebuffer *fb = state->fb; 162 - struct drm_gem_cma_object *cma_obj; 162 + struct drm_gem_dma_object *dma_obj; 163 163 unsigned long eba = drm_plane_state_to_eba(state, 0); 164 164 int x = state->src.x1 >> 16; 165 165 int y = state->src.y1 >> 16; 166 166 167 - cma_obj = drm_fb_dma_get_gem_obj(fb, 2); 168 - BUG_ON(!cma_obj); 167 + dma_obj = drm_fb_dma_get_gem_obj(fb, 2); 168 + BUG_ON(!dma_obj); 169 169 170 170 x /= fb->format->hsub; 171 171 y /= fb->format->vsub; 172 172 173 - return cma_obj->paddr + fb->offsets[2] + fb->pitches[2] * y + 173 + return dma_obj->paddr + fb->offsets[2] + fb->pitches[2] * y + 174 174 fb->format->cpp[2] * x - eba; 175 175 } 176 176
+1 -1
drivers/gpu/drm/ingenic/Kconfig
··· 8 8 select DRM_BRIDGE 9 9 select DRM_PANEL_BRIDGE 10 10 select DRM_KMS_HELPER 11 - select DRM_GEM_CMA_HELPER 11 + select DRM_GEM_DMA_HELPER 12 12 select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE 13 13 help 14 14 Choose this option for DRM support for the Ingenic SoCs.
+4 -4
drivers/gpu/drm/ingenic/ingenic-drm-drv.c
··· 30 30 #include <drm/drm_damage_helper.h> 31 31 #include <drm/drm_drv.h> 32 32 #include <drm/drm_encoder.h> 33 - #include <drm/drm_gem_cma_helper.h> 33 + #include <drm/drm_gem_dma_helper.h> 34 34 #include <drm/drm_fb_dma_helper.h> 35 35 #include <drm/drm_fb_helper.h> 36 36 #include <drm/drm_fourcc.h> ··· 914 914 ingenic_drm_gem_create_object(struct drm_device *drm, size_t size) 915 915 { 916 916 struct ingenic_drm *priv = drm_device_get_priv(drm); 917 - struct drm_gem_cma_object *obj; 917 + struct drm_gem_dma_object *obj; 918 918 919 919 obj = kzalloc(sizeof(*obj), GFP_KERNEL); 920 920 if (!obj) ··· 947 947 kfree(priv_state); 948 948 } 949 949 950 - DEFINE_DRM_GEM_CMA_FOPS(ingenic_drm_fops); 950 + DEFINE_DRM_GEM_DMA_FOPS(ingenic_drm_fops); 951 951 952 952 static const struct drm_driver ingenic_drm_driver_data = { 953 953 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, ··· 960 960 961 961 .fops = &ingenic_drm_fops, 962 962 .gem_create_object = ingenic_drm_gem_create_object, 963 - DRM_GEM_CMA_DRIVER_OPS, 963 + DRM_GEM_DMA_DRIVER_OPS, 964 964 }; 965 965 966 966 static const struct drm_plane_funcs ingenic_drm_primary_plane_funcs = {
+1 -1
drivers/gpu/drm/ingenic/ingenic-ipu.c
··· 26 26 #include <drm/drm_fourcc.h> 27 27 #include <drm/drm_framebuffer.h> 28 28 #include <drm/drm_gem_atomic_helper.h> 29 - #include <drm/drm_gem_cma_helper.h> 29 + #include <drm/drm_gem_dma_helper.h> 30 30 #include <drm/drm_gem_framebuffer_helper.h> 31 31 #include <drm/drm_plane.h> 32 32 #include <drm/drm_property.h>
+1 -1
drivers/gpu/drm/kmb/Kconfig
··· 3 3 depends on DRM 4 4 depends on ARCH_KEEMBAY || COMPILE_TEST 5 5 select DRM_KMS_HELPER 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_MIPI_DSI 8 8 help 9 9 Choose this option if you have Intel's KeemBay SOC which integrates
+3 -3
drivers/gpu/drm/kmb/kmb_drv.c
··· 16 16 #include <drm/drm_atomic_helper.h> 17 17 #include <drm/drm_drv.h> 18 18 #include <drm/drm_fb_helper.h> 19 - #include <drm/drm_gem_cma_helper.h> 19 + #include <drm/drm_gem_dma_helper.h> 20 20 #include <drm/drm_gem_framebuffer_helper.h> 21 21 #include <drm/drm_module.h> 22 22 #include <drm/drm_probe_helper.h> ··· 433 433 free_irq(kmb->irq_lcd, drm); 434 434 } 435 435 436 - DEFINE_DRM_GEM_CMA_FOPS(fops); 436 + DEFINE_DRM_GEM_DMA_FOPS(fops); 437 437 438 438 static const struct drm_driver kmb_driver = { 439 439 .driver_features = DRIVER_GEM | 440 440 DRIVER_MODESET | DRIVER_ATOMIC, 441 441 /* GEM Operations */ 442 442 .fops = &fops, 443 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 443 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 444 444 .name = "kmb-drm", 445 445 .desc = "KEEMBAY DISPLAY DRIVER", 446 446 .date = DRIVER_DATE,
+1 -1
drivers/gpu/drm/kmb/kmb_plane.c
··· 12 12 #include <drm/drm_fb_helper.h> 13 13 #include <drm/drm_fourcc.h> 14 14 #include <drm/drm_framebuffer.h> 15 - #include <drm/drm_gem_cma_helper.h> 15 + #include <drm/drm_gem_dma_helper.h> 16 16 #include <drm/drm_managed.h> 17 17 18 18 #include "kmb_drv.h"
+1 -1
drivers/gpu/drm/logicvc/Kconfig
··· 4 4 depends on OF || COMPILE_TEST 5 5 select DRM_KMS_HELPER 6 6 select DRM_KMS_DMA_HELPER 7 - select DRM_GEM_CMA_HELPER 7 + select DRM_GEM_DMA_HELPER 8 8 help 9 9 DRM display driver for the logiCVC programmable logic block from Xylon
+1 -1
drivers/gpu/drm/logicvc/logicvc_crtc.c
··· 12 12 #include <drm/drm_atomic_helper.h> 13 13 #include <drm/drm_crtc.h> 14 14 #include <drm/drm_drv.h> 15 - #include <drm/drm_gem_cma_helper.h> 15 + #include <drm/drm_gem_dma_helper.h> 16 16 #include <drm/drm_print.h> 17 17 #include <drm/drm_vblank.h> 18 18
+5 -5
drivers/gpu/drm/logicvc/logicvc_drm.c
··· 18 18 #include <drm/drm_atomic_helper.h> 19 19 #include <drm/drm_drv.h> 20 20 #include <drm/drm_fb_helper.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_print.h> 23 23 24 24 #include "logicvc_crtc.h" ··· 29 29 #include "logicvc_of.h" 30 30 #include "logicvc_regs.h" 31 31 32 - DEFINE_DRM_GEM_CMA_FOPS(logicvc_drm_fops); 32 + DEFINE_DRM_GEM_DMA_FOPS(logicvc_drm_fops); 33 33 34 - static int logicvc_drm_gem_cma_dumb_create(struct drm_file *file_priv, 34 + static int logicvc_drm_gem_dma_dumb_create(struct drm_file *file_priv, 35 35 struct drm_device *drm_dev, 36 36 struct drm_mode_create_dumb *args) 37 37 { ··· 40 40 /* Stride is always fixed to its configuration value. */ 41 41 args->pitch = logicvc->config.row_stride * DIV_ROUND_UP(args->bpp, 8); 42 42 43 - return drm_gem_cma_dumb_create_internal(file_priv, drm_dev, args); 43 + return drm_gem_dma_dumb_create_internal(file_priv, drm_dev, args); 44 44 } 45 45 46 46 static struct drm_driver logicvc_drm_driver = { ··· 54 54 .major = 1, 55 55 .minor = 0, 56 56 57 - DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(logicvc_drm_gem_cma_dumb_create), 57 + DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(logicvc_drm_gem_dma_dumb_create), 58 58 }; 59 59 60 60 static struct regmap_config logicvc_drm_regmap_config = {
+1 -1
drivers/gpu/drm/logicvc/logicvc_interface.c
··· 12 12 #include <drm/drm_crtc_helper.h> 13 13 #include <drm/drm_drv.h> 14 14 #include <drm/drm_encoder.h> 15 - #include <drm/drm_gem_cma_helper.h> 15 + #include <drm/drm_gem_dma_helper.h> 16 16 #include <drm/drm_modeset_helper_vtables.h> 17 17 #include <drm/drm_of.h> 18 18 #include <drm/drm_panel.h>
+1 -1
drivers/gpu/drm/logicvc/logicvc_mode.c
··· 11 11 #include <drm/drm_crtc_helper.h> 12 12 #include <drm/drm_drv.h> 13 13 #include <drm/drm_fb_helper.h> 14 - #include <drm/drm_gem_cma_helper.h> 14 + #include <drm/drm_gem_dma_helper.h> 15 15 #include <drm/drm_gem_framebuffer_helper.h> 16 16 #include <drm/drm_mode_config.h> 17 17 #include <drm/drm_panel.h>
+1 -1
drivers/gpu/drm/mcde/Kconfig
··· 10 10 select DRM_BRIDGE 11 11 select DRM_PANEL_BRIDGE 12 12 select DRM_KMS_HELPER 13 - select DRM_GEM_CMA_HELPER 13 + select DRM_GEM_DMA_HELPER 14 14 select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE 15 15 help 16 16 Choose this option for DRM support for the ST-Ericsson MCDE
+1 -1
drivers/gpu/drm/mcde/mcde_display.c
··· 15 15 #include <drm/drm_fourcc.h> 16 16 #include <drm/drm_framebuffer.h> 17 17 #include <drm/drm_gem_atomic_helper.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_mipi_dsi.h> 20 20 #include <drm/drm_simple_kms_helper.h> 21 21 #include <drm/drm_bridge.h>
+3 -3
drivers/gpu/drm/mcde/mcde_drv.c
··· 71 71 #include <drm/drm_fb_dma_helper.h> 72 72 #include <drm/drm_fb_helper.h> 73 73 #include <drm/drm_gem.h> 74 - #include <drm/drm_gem_cma_helper.h> 74 + #include <drm/drm_gem_dma_helper.h> 75 75 #include <drm/drm_gem_framebuffer_helper.h> 76 76 #include <drm/drm_managed.h> 77 77 #include <drm/drm_of.h> ··· 198 198 return 0; 199 199 } 200 200 201 - DEFINE_DRM_GEM_CMA_FOPS(drm_fops); 201 + DEFINE_DRM_GEM_DMA_FOPS(drm_fops); 202 202 203 203 static const struct drm_driver mcde_drm_driver = { 204 204 .driver_features = ··· 212 212 .major = 1, 213 213 .minor = 0, 214 214 .patchlevel = 0, 215 - DRM_GEM_CMA_DRIVER_OPS, 215 + DRM_GEM_DMA_DRIVER_OPS, 216 216 }; 217 217 218 218 static int mcde_drm_bind(struct device *dev)
+1 -1
drivers/gpu/drm/mediatek/Kconfig
··· 7 7 depends on HAVE_ARM_SMCCC 8 8 depends on OF 9 9 depends on MTK_MMSYS 10 - select DRM_GEM_CMA_HELPER 10 + select DRM_GEM_DMA_HELPER 11 11 select DRM_KMS_HELPER 12 12 select DRM_MIPI_DSI 13 13 select DRM_PANEL
+1 -1
drivers/gpu/drm/mediatek/mtk_drm_drv.c
··· 20 20 #include <drm/drm_fb_helper.h> 21 21 #include <drm/drm_fourcc.h> 22 22 #include <drm/drm_gem.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_gem_framebuffer_helper.h> 25 25 #include <drm/drm_of.h> 26 26 #include <drm/drm_probe_helper.h>
+2 -2
drivers/gpu/drm/mediatek/mtk_drm_gem.c
··· 8 8 #include <drm/drm.h> 9 9 #include <drm/drm_device.h> 10 10 #include <drm/drm_gem.h> 11 - #include <drm/drm_gem_cma_helper.h> 11 + #include <drm/drm_gem_dma_helper.h> 12 12 #include <drm/drm_prime.h> 13 13 14 14 #include "mtk_drm_drv.h" ··· 22 22 .vmap = mtk_drm_gem_prime_vmap, 23 23 .vunmap = mtk_drm_gem_prime_vunmap, 24 24 .mmap = mtk_drm_gem_object_mmap, 25 - .vm_ops = &drm_gem_cma_vm_ops, 25 + .vm_ops = &drm_gem_dma_vm_ops, 26 26 }; 27 27 28 28 static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev,
+1 -1
drivers/gpu/drm/meson/Kconfig
··· 4 4 depends on DRM && OF && (ARM || ARM64) 5 5 depends on ARCH_MESON || COMPILE_TEST 6 6 select DRM_KMS_HELPER 7 - select DRM_GEM_CMA_HELPER 7 + select DRM_GEM_DMA_HELPER 8 8 select DRM_DISPLAY_CONNECTOR 9 9 select VIDEOMODE_HELPERS 10 10 select REGMAP_MMIO
+5 -5
drivers/gpu/drm/meson/meson_drv.c
··· 19 19 #include <drm/drm_atomic_helper.h> 20 20 #include <drm/drm_drv.h> 21 21 #include <drm/drm_fb_helper.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 #include <drm/drm_gem_framebuffer_helper.h> 24 24 #include <drm/drm_modeset_helper_vtables.h> 25 25 #include <drm/drm_module.h> ··· 87 87 args->pitch = ALIGN(DIV_ROUND_UP(args->width * args->bpp, 8), SZ_64); 88 88 args->size = PAGE_ALIGN(args->pitch * args->height); 89 89 90 - return drm_gem_cma_dumb_create_internal(file, dev, args); 90 + return drm_gem_dma_dumb_create_internal(file, dev, args); 91 91 } 92 92 93 - DEFINE_DRM_GEM_CMA_FOPS(fops); 93 + DEFINE_DRM_GEM_DMA_FOPS(fops); 94 94 95 95 static const struct drm_driver meson_driver = { 96 96 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 97 97 98 - /* CMA Ops */ 99 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(meson_dumb_create), 98 + /* DMA Ops */ 99 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(meson_dumb_create), 100 100 101 101 /* Misc */ 102 102 .fops = &fops,
+2 -2
drivers/gpu/drm/meson/meson_overlay.c
··· 15 15 #include <drm/drm_fourcc.h> 16 16 #include <drm/drm_framebuffer.h> 17 17 #include <drm/drm_gem_atomic_helper.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 20 20 #include "meson_overlay.h" 21 21 #include "meson_registers.h" ··· 476 476 plane); 477 477 struct drm_framebuffer *fb = new_state->fb; 478 478 struct meson_drm *priv = meson_overlay->priv; 479 - struct drm_gem_cma_object *gem; 479 + struct drm_gem_dma_object *gem; 480 480 unsigned long flags; 481 481 bool interlace_mode; 482 482
+2 -2
drivers/gpu/drm/meson/meson_plane.c
··· 19 19 #include <drm/drm_fourcc.h> 20 20 #include <drm/drm_framebuffer.h> 21 21 #include <drm/drm_gem_atomic_helper.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 24 24 #include "meson_plane.h" 25 25 #include "meson_registers.h" ··· 139 139 struct drm_rect dest = drm_plane_state_dest(new_state); 140 140 struct meson_drm *priv = meson_plane->priv; 141 141 struct drm_framebuffer *fb = new_state->fb; 142 - struct drm_gem_cma_object *gem; 142 + struct drm_gem_dma_object *gem; 143 143 unsigned long flags; 144 144 int vsc_ini_rcv_num, vsc_ini_rpt_p0_num; 145 145 int vsc_bot_rcv_num, vsc_bot_rpt_p0_num;
+1 -1
drivers/gpu/drm/msm/msm_drv.c
··· 355 355 DRM_INFO("using VRAM carveout: %lx@%pa\n", size, &r.start); 356 356 357 357 /* if we have no IOMMU, then we need to use carveout allocator. 358 - * Grab the entire CMA chunk carved out in early startup in 358 + * Grab the entire DMA chunk carved out in early startup in 359 359 * mach-msm: 360 360 */ 361 361 } else if (!msm_use_mmu(dev)) {
+2 -2
drivers/gpu/drm/mxsfb/Kconfig
··· 10 10 depends on COMMON_CLK 11 11 select DRM_MXS 12 12 select DRM_KMS_HELPER 13 - select DRM_GEM_CMA_HELPER 13 + select DRM_GEM_DMA_HELPER 14 14 select DRM_PANEL 15 15 select DRM_PANEL_BRIDGE 16 16 help ··· 26 26 depends on COMMON_CLK 27 27 select DRM_MXS 28 28 select DRM_KMS_HELPER 29 - select DRM_GEM_CMA_HELPER 29 + select DRM_GEM_DMA_HELPER 30 30 select DRM_PANEL 31 31 select DRM_PANEL_BRIDGE 32 32 help
+3 -3
drivers/gpu/drm/mxsfb/lcdif_drv.c
··· 20 20 #include <drm/drm_drv.h> 21 21 #include <drm/drm_fb_helper.h> 22 22 #include <drm/drm_fourcc.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_gem_framebuffer_helper.h> 25 25 #include <drm/drm_mode_config.h> 26 26 #include <drm/drm_module.h> ··· 199 199 drm->dev_private = NULL; 200 200 } 201 201 202 - DEFINE_DRM_GEM_CMA_FOPS(fops); 202 + DEFINE_DRM_GEM_DMA_FOPS(fops); 203 203 204 204 static const struct drm_driver lcdif_driver = { 205 205 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 206 - DRM_GEM_CMA_DRIVER_OPS, 206 + DRM_GEM_DMA_DRIVER_OPS, 207 207 .fops = &fops, 208 208 .name = "imx-lcdif", 209 209 .desc = "i.MX LCDIF Controller DRM",
+1 -1
drivers/gpu/drm/mxsfb/lcdif_kms.c
··· 21 21 #include <drm/drm_fb_dma_helper.h> 22 22 #include <drm/drm_fourcc.h> 23 23 #include <drm/drm_gem_atomic_helper.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_plane.h> 26 26 #include <drm/drm_vblank.h> 27 27
+3 -3
drivers/gpu/drm/mxsfb/mxsfb_drv.c
··· 22 22 #include <drm/drm_drv.h> 23 23 #include <drm/drm_fb_helper.h> 24 24 #include <drm/drm_fourcc.h> 25 - #include <drm/drm_gem_cma_helper.h> 25 + #include <drm/drm_gem_dma_helper.h> 26 26 #include <drm/drm_gem_framebuffer_helper.h> 27 27 #include <drm/drm_mode_config.h> 28 28 #include <drm/drm_module.h> ··· 324 324 pm_runtime_disable(drm->dev); 325 325 } 326 326 327 - DEFINE_DRM_GEM_CMA_FOPS(fops); 327 + DEFINE_DRM_GEM_DMA_FOPS(fops); 328 328 329 329 static const struct drm_driver mxsfb_driver = { 330 330 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 331 - DRM_GEM_CMA_DRIVER_OPS, 331 + DRM_GEM_DMA_DRIVER_OPS, 332 332 .fops = &fops, 333 333 .name = "mxsfb-drm", 334 334 .desc = "MXSFB Controller DRM",
+1 -1
drivers/gpu/drm/mxsfb/mxsfb_kms.c
··· 24 24 #include <drm/drm_fourcc.h> 25 25 #include <drm/drm_framebuffer.h> 26 26 #include <drm/drm_gem_atomic_helper.h> 27 - #include <drm/drm_gem_cma_helper.h> 27 + #include <drm/drm_gem_dma_helper.h> 28 28 #include <drm/drm_plane.h> 29 29 #include <drm/drm_vblank.h> 30 30
+1 -1
drivers/gpu/drm/panel/Kconfig
··· 166 166 tristate "Ilitek ILI9341 240x320 QVGA panels" 167 167 depends on OF && SPI 168 168 depends on DRM_KMS_HELPER 169 - depends on DRM_GEM_CMA_HELPER 169 + depends on DRM_GEM_DMA_HELPER 170 170 depends on BACKLIGHT_CLASS_DEVICE 171 171 select DRM_MIPI_DBI 172 172 help
+3 -3
drivers/gpu/drm/panel/panel-ilitek-ili9341.c
··· 32 32 #include <drm/drm_drv.h> 33 33 #include <drm/drm_fb_helper.h> 34 34 #include <drm/drm_gem_atomic_helper.h> 35 - #include <drm/drm_gem_cma_helper.h> 35 + #include <drm/drm_gem_dma_helper.h> 36 36 #include <drm/drm_gem_framebuffer_helper.h> 37 37 #include <drm/drm_mipi_dbi.h> 38 38 #include <drm/drm_modes.h> ··· 586 586 DRM_SIMPLE_MODE(240, 320, 37, 49), 587 587 }; 588 588 589 - DEFINE_DRM_GEM_CMA_FOPS(ili9341_dbi_fops); 589 + DEFINE_DRM_GEM_DMA_FOPS(ili9341_dbi_fops); 590 590 591 591 static struct drm_driver ili9341_dbi_driver = { 592 592 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 593 593 .fops = &ili9341_dbi_fops, 594 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 594 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 595 595 .debugfs_init = mipi_dbi_debugfs_init, 596 596 .name = "ili9341", 597 597 .desc = "Ilitek ILI9341",
+1 -1
drivers/gpu/drm/pl111/Kconfig
··· 6 6 depends on VEXPRESS_CONFIG || VEXPRESS_CONFIG=n 7 7 depends on COMMON_CLK 8 8 select DRM_KMS_HELPER 9 - select DRM_GEM_CMA_HELPER 9 + select DRM_GEM_DMA_HELPER 10 10 select DRM_BRIDGE 11 11 select DRM_PANEL_BRIDGE 12 12 select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE
+1 -1
drivers/gpu/drm/pl111/pl111_display.c
··· 19 19 #include <drm/drm_fourcc.h> 20 20 #include <drm/drm_framebuffer.h> 21 21 #include <drm/drm_gem_atomic_helper.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 #include <drm/drm_vblank.h> 24 24 25 25 #include "pl111_drm.h"
+4 -4
drivers/gpu/drm/pl111/pl111_drv.c
··· 50 50 #include <drm/drm_drv.h> 51 51 #include <drm/drm_fb_helper.h> 52 52 #include <drm/drm_fourcc.h> 53 - #include <drm/drm_gem_cma_helper.h> 53 + #include <drm/drm_gem_dma_helper.h> 54 54 #include <drm/drm_gem_framebuffer_helper.h> 55 55 #include <drm/drm_of.h> 56 56 #include <drm/drm_panel.h> ··· 207 207 if (priv->use_device_memory) 208 208 return ERR_PTR(-EINVAL); 209 209 210 - return drm_gem_cma_prime_import_sg_table(dev, attach, sgt); 210 + return drm_gem_dma_prime_import_sg_table(dev, attach, sgt); 211 211 } 212 212 213 - DEFINE_DRM_GEM_CMA_FOPS(drm_fops); 213 + DEFINE_DRM_GEM_DMA_FOPS(drm_fops); 214 214 215 215 static const struct drm_driver pl111_drm_driver = { 216 216 .driver_features = ··· 223 223 .major = 1, 224 224 .minor = 0, 225 225 .patchlevel = 0, 226 - .dumb_create = drm_gem_cma_dumb_create, 226 + .dumb_create = drm_gem_dma_dumb_create, 227 227 .prime_handle_to_fd = drm_gem_prime_handle_to_fd, 228 228 .prime_fd_to_handle = drm_gem_prime_fd_to_handle, 229 229 .gem_prime_import_sg_table = pl111_gem_import_sg_table,
+1 -1
drivers/gpu/drm/rcar-du/Kconfig
··· 5 5 depends on ARM || ARM64 6 6 depends on ARCH_RENESAS || COMPILE_TEST 7 7 select DRM_KMS_HELPER 8 - select DRM_GEM_CMA_HELPER 8 + select DRM_GEM_DMA_HELPER 9 9 select VIDEOMODE_HELPERS 10 10 help 11 11 Choose this option if you have an R-Car chipset.
+1 -1
drivers/gpu/drm/rcar-du/rcar_du_crtc.c
··· 17 17 #include <drm/drm_bridge.h> 18 18 #include <drm/drm_crtc.h> 19 19 #include <drm/drm_device.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_vblank.h> 22 22 23 23 #include "rcar_cmm.h"
+2 -2
drivers/gpu/drm/rcar-du/rcar_du_drv.c
··· 21 21 #include <drm/drm_atomic_helper.h> 22 22 #include <drm/drm_drv.h> 23 23 #include <drm/drm_fb_helper.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_managed.h> 26 26 #include <drm/drm_probe_helper.h> 27 27 ··· 578 578 * DRM operations 579 579 */ 580 580 581 - DEFINE_DRM_GEM_CMA_FOPS(rcar_du_fops); 581 + DEFINE_DRM_GEM_DMA_FOPS(rcar_du_fops); 582 582 583 583 static const struct drm_driver rcar_du_driver = { 584 584 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
+18 -18
drivers/gpu/drm/rcar-du/rcar_du_kms.c
··· 12 12 #include <drm/drm_crtc.h> 13 13 #include <drm/drm_device.h> 14 14 #include <drm/drm_framebuffer.h> 15 - #include <drm/drm_gem_cma_helper.h> 15 + #include <drm/drm_gem_dma_helper.h> 16 16 #include <drm/drm_gem_framebuffer_helper.h> 17 17 #include <drm/drm_managed.h> 18 18 #include <drm/drm_probe_helper.h> ··· 327 327 */ 328 328 329 329 static const struct drm_gem_object_funcs rcar_du_gem_funcs = { 330 - .free = drm_gem_cma_object_free, 331 - .print_info = drm_gem_cma_object_print_info, 332 - .get_sg_table = drm_gem_cma_object_get_sg_table, 333 - .vmap = drm_gem_cma_object_vmap, 334 - .mmap = drm_gem_cma_object_mmap, 335 - .vm_ops = &drm_gem_cma_vm_ops, 330 + .free = drm_gem_dma_object_free, 331 + .print_info = drm_gem_dma_object_print_info, 332 + .get_sg_table = drm_gem_dma_object_get_sg_table, 333 + .vmap = drm_gem_dma_object_vmap, 334 + .mmap = drm_gem_dma_object_mmap, 335 + .vm_ops = &drm_gem_dma_vm_ops, 336 336 }; 337 337 338 338 struct drm_gem_object *rcar_du_gem_prime_import_sg_table(struct drm_device *dev, ··· 340 340 struct sg_table *sgt) 341 341 { 342 342 struct rcar_du_device *rcdu = to_rcar_du_device(dev); 343 - struct drm_gem_cma_object *cma_obj; 343 + struct drm_gem_dma_object *dma_obj; 344 344 struct drm_gem_object *gem_obj; 345 345 int ret; 346 346 347 347 if (!rcar_du_has(rcdu, RCAR_DU_FEATURE_VSP1_SOURCE)) 348 - return drm_gem_cma_prime_import_sg_table(dev, attach, sgt); 348 + return drm_gem_dma_prime_import_sg_table(dev, attach, sgt); 349 349 350 - /* Create a CMA GEM buffer. */ 351 - cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL); 352 - if (!cma_obj) 350 + /* Create a DMA GEM buffer. */ 351 + dma_obj = kzalloc(sizeof(*dma_obj), GFP_KERNEL); 352 + if (!dma_obj) 353 353 return ERR_PTR(-ENOMEM); 354 354 355 - gem_obj = &cma_obj->base; 355 + gem_obj = &dma_obj->base; 356 356 gem_obj->funcs = &rcar_du_gem_funcs; 357 357 358 358 drm_gem_private_object_init(dev, gem_obj, attach->dmabuf->size); 359 - cma_obj->map_noncoherent = false; 359 + dma_obj->map_noncoherent = false; 360 360 361 361 ret = drm_gem_create_mmap_offset(gem_obj); 362 362 if (ret) { 363 363 drm_gem_object_release(gem_obj); 364 - kfree(cma_obj); 364 + kfree(dma_obj); 365 365 return ERR_PTR(ret); 366 366 } 367 367 368 - cma_obj->paddr = 0; 369 - cma_obj->sgt = sgt; 368 + dma_obj->paddr = 0; 369 + dma_obj->sgt = sgt; 370 370 371 371 return gem_obj; 372 372 } ··· 389 389 390 390 args->pitch = roundup(min_pitch, align); 391 391 392 - return drm_gem_cma_dumb_create_internal(file, dev, args); 392 + return drm_gem_dma_dumb_create_internal(file, dev, args); 393 393 } 394 394 395 395 static struct drm_framebuffer *
+2 -2
drivers/gpu/drm/rcar-du/rcar_du_plane.c
··· 15 15 #include <drm/drm_fb_dma_helper.h> 16 16 #include <drm/drm_fourcc.h> 17 17 #include <drm/drm_framebuffer.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 20 20 #include "rcar_du_drv.h" 21 21 #include "rcar_du_group.h" ··· 341 341 342 342 if (state->source == RCAR_DU_PLANE_MEMORY) { 343 343 struct drm_framebuffer *fb = state->state.fb; 344 - struct drm_gem_cma_object *gem; 344 + struct drm_gem_dma_object *gem; 345 345 unsigned int i; 346 346 347 347 if (state->format->planes == 2)
+2 -2
drivers/gpu/drm/rcar-du/rcar_du_vsp.c
··· 15 15 #include <drm/drm_fourcc.h> 16 16 #include <drm/drm_framebuffer.h> 17 17 #include <drm/drm_gem_atomic_helper.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_managed.h> 20 20 #include <drm/drm_vblank.h> 21 21 ··· 183 183 int ret; 184 184 185 185 for (i = 0; i < fb->format->num_planes; ++i) { 186 - struct drm_gem_cma_object *gem = drm_fb_dma_get_gem_obj(fb, i); 186 + struct drm_gem_dma_object *gem = drm_fb_dma_get_gem_obj(fb, i); 187 187 struct sg_table *sgt = &sg_tables[i]; 188 188 189 189 if (gem->sgt) {
+1 -1
drivers/gpu/drm/rockchip/Kconfig
··· 2 2 config DRM_ROCKCHIP 3 3 tristate "DRM Support for Rockchip" 4 4 depends on DRM && ROCKCHIP_IOMMU 5 - select DRM_GEM_CMA_HELPER 5 + select DRM_GEM_DMA_HELPER 6 6 select DRM_KMS_HELPER 7 7 select DRM_PANEL 8 8 select VIDEOMODE_HELPERS
+1 -1
drivers/gpu/drm/rockchip/rockchip_drm_drv.c
··· 18 18 #include <drm/drm_aperture.h> 19 19 #include <drm/drm_drv.h> 20 20 #include <drm/drm_fb_helper.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_of.h> 23 23 #include <drm/drm_probe_helper.h> 24 24 #include <drm/drm_vblank.h>
+2 -2
drivers/gpu/drm/rockchip/rockchip_drm_gem.c
··· 10 10 11 11 #include <drm/drm.h> 12 12 #include <drm/drm_gem.h> 13 - #include <drm/drm_gem_cma_helper.h> 13 + #include <drm/drm_gem_dma_helper.h> 14 14 #include <drm/drm_prime.h> 15 15 #include <drm/drm_vma_manager.h> 16 16 ··· 279 279 .vmap = rockchip_gem_prime_vmap, 280 280 .vunmap = rockchip_gem_prime_vunmap, 281 281 .mmap = rockchip_drm_gem_object_mmap, 282 - .vm_ops = &drm_gem_cma_vm_ops, 282 + .vm_ops = &drm_gem_dma_vm_ops, 283 283 }; 284 284 285 285 static struct rockchip_gem_object *
+1 -1
drivers/gpu/drm/shmobile/Kconfig
··· 5 5 depends on ARCH_SHMOBILE || COMPILE_TEST 6 6 select BACKLIGHT_CLASS_DEVICE 7 7 select DRM_KMS_HELPER 8 - select DRM_GEM_CMA_HELPER 8 + select DRM_GEM_DMA_HELPER 9 9 help 10 10 Choose this option if you have an SH Mobile chipset. 11 11 If M is selected the module will be called shmob-drm.
+2 -2
drivers/gpu/drm/shmobile/shmob_drm_crtc.c
··· 15 15 #include <drm/drm_fb_dma_helper.h> 16 16 #include <drm/drm_fourcc.h> 17 17 #include <drm/drm_framebuffer.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_probe_helper.h> 20 20 #include <drm/drm_simple_kms_helper.h> 21 21 #include <drm/drm_vblank.h> ··· 288 288 { 289 289 struct drm_crtc *crtc = &scrtc->crtc; 290 290 struct drm_framebuffer *fb = crtc->primary->fb; 291 - struct drm_gem_cma_object *gem; 291 + struct drm_gem_dma_object *gem; 292 292 unsigned int bpp; 293 293 294 294 bpp = scrtc->format->yuv ? 8 : scrtc->format->bpp;
+3 -3
drivers/gpu/drm/shmobile/shmob_drm_drv.c
··· 17 17 18 18 #include <drm/drm_crtc_helper.h> 19 19 #include <drm/drm_drv.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_module.h> 22 22 #include <drm/drm_probe_helper.h> 23 23 #include <drm/drm_vblank.h> ··· 126 126 return IRQ_HANDLED; 127 127 } 128 128 129 - DEFINE_DRM_GEM_CMA_FOPS(shmob_drm_fops); 129 + DEFINE_DRM_GEM_DMA_FOPS(shmob_drm_fops); 130 130 131 131 static const struct drm_driver shmob_drm_driver = { 132 132 .driver_features = DRIVER_GEM | DRIVER_MODESET, 133 - DRM_GEM_CMA_DRIVER_OPS, 133 + DRM_GEM_DMA_DRIVER_OPS, 134 134 .fops = &shmob_drm_fops, 135 135 .name = "shmob-drm", 136 136 .desc = "Renesas SH Mobile DRM",
+1 -1
drivers/gpu/drm/shmobile/shmob_drm_kms.c
··· 10 10 #include <drm/drm_crtc.h> 11 11 #include <drm/drm_crtc_helper.h> 12 12 #include <drm/drm_fourcc.h> 13 - #include <drm/drm_gem_cma_helper.h> 13 + #include <drm/drm_gem_dma_helper.h> 14 14 #include <drm/drm_gem_framebuffer_helper.h> 15 15 #include <drm/drm_probe_helper.h> 16 16
+1 -1
drivers/gpu/drm/shmobile/shmob_drm_kms.h
··· 12 12 13 13 #include <linux/types.h> 14 14 15 - struct drm_gem_cma_object; 15 + struct drm_gem_dma_object; 16 16 struct shmob_drm_device; 17 17 18 18 struct shmob_drm_format_info {
+2 -2
drivers/gpu/drm/shmobile/shmob_drm_plane.c
··· 12 12 #include <drm/drm_fb_dma_helper.h> 13 13 #include <drm/drm_fourcc.h> 14 14 #include <drm/drm_framebuffer.h> 15 - #include <drm/drm_gem_cma_helper.h> 15 + #include <drm/drm_gem_dma_helper.h> 16 16 17 17 #include "shmob_drm_drv.h" 18 18 #include "shmob_drm_kms.h" ··· 41 41 struct drm_framebuffer *fb, 42 42 int x, int y) 43 43 { 44 - struct drm_gem_cma_object *gem; 44 + struct drm_gem_dma_object *gem; 45 45 unsigned int bpp; 46 46 47 47 bpp = splane->format->yuv ? 8 : splane->format->bpp;
+1 -1
drivers/gpu/drm/sprd/Kconfig
··· 2 2 tristate "DRM Support for Unisoc SoCs Platform" 3 3 depends on ARCH_SPRD || COMPILE_TEST 4 4 depends on DRM && OF 5 - select DRM_GEM_CMA_HELPER 5 + select DRM_GEM_DMA_HELPER 6 6 select DRM_KMS_HELPER 7 7 select DRM_MIPI_DSI 8 8 select VIDEOMODE_HELPERS
+4 -4
drivers/gpu/drm/sprd/sprd_dpu.c
··· 21 21 #include <drm/drm_crtc_helper.h> 22 22 #include <drm/drm_fb_dma_helper.h> 23 23 #include <drm/drm_framebuffer.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_gem_framebuffer_helper.h> 26 26 27 27 #include "sprd_drm.h" ··· 323 323 static void sprd_dpu_layer(struct sprd_dpu *dpu, struct drm_plane_state *state) 324 324 { 325 325 struct dpu_context *ctx = &dpu->ctx; 326 - struct drm_gem_cma_object *cma_obj; 326 + struct drm_gem_dma_object *dma_obj; 327 327 struct drm_framebuffer *fb = state->fb; 328 328 u32 addr, size, offset, pitch, blend, format, rotation; 329 329 u32 src_x = state->src_x >> 16; ··· 340 340 size = (src_w & 0xffff) | (src_h << 16); 341 341 342 342 for (i = 0; i < fb->format->num_planes; i++) { 343 - cma_obj = drm_fb_dma_get_gem_obj(fb, i); 344 - addr = cma_obj->paddr + fb->offsets[i]; 343 + dma_obj = drm_fb_dma_get_gem_obj(fb, i); 344 + addr = dma_obj->paddr + fb->offsets[i]; 345 345 346 346 if (i == 0) 347 347 layer_reg_wr(ctx, REG_LAY_BASE_ADDR0, addr, index);
+3 -3
drivers/gpu/drm/sprd/sprd_drm.c
··· 13 13 #include <drm/drm_atomic_helper.h> 14 14 #include <drm/drm_crtc_helper.h> 15 15 #include <drm/drm_drv.h> 16 - #include <drm/drm_gem_cma_helper.h> 16 + #include <drm/drm_gem_dma_helper.h> 17 17 #include <drm/drm_gem_framebuffer_helper.h> 18 18 #include <drm/drm_of.h> 19 19 #include <drm/drm_probe_helper.h> ··· 48 48 drm->mode_config.helper_private = &sprd_drm_mode_config_helper; 49 49 } 50 50 51 - DEFINE_DRM_GEM_CMA_FOPS(sprd_drm_fops); 51 + DEFINE_DRM_GEM_DMA_FOPS(sprd_drm_fops); 52 52 53 53 static struct drm_driver sprd_drm_drv = { 54 54 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 55 55 .fops = &sprd_drm_fops, 56 56 57 57 /* GEM Operations */ 58 - DRM_GEM_CMA_DRIVER_OPS, 58 + DRM_GEM_DMA_DRIVER_OPS, 59 59 60 60 .name = DRIVER_NAME, 61 61 .desc = DRIVER_DESC,
+1 -1
drivers/gpu/drm/sti/Kconfig
··· 4 4 depends on OF && DRM && (ARCH_STI || ARCH_MULTIPLATFORM) 5 5 select RESET_CONTROLLER 6 6 select DRM_KMS_HELPER 7 - select DRM_GEM_CMA_HELPER 7 + select DRM_GEM_DMA_HELPER 8 8 select DRM_PANEL 9 9 select FW_LOADER 10 10 select SND_SOC_HDMI_CODEC if SND_SOC
+5 -5
drivers/gpu/drm/sti/sti_cursor.c
··· 13 13 #include <drm/drm_device.h> 14 14 #include <drm/drm_fb_dma_helper.h> 15 15 #include <drm/drm_framebuffer.h> 16 - #include <drm/drm_gem_cma_helper.h> 16 + #include <drm/drm_gem_dma_helper.h> 17 17 18 18 #include "sti_compositor.h" 19 19 #include "sti_cursor.h" ··· 244 244 } 245 245 246 246 if (!drm_fb_dma_get_gem_obj(fb, 0)) { 247 - DRM_ERROR("Can't get CMA GEM object for fb\n"); 247 + DRM_ERROR("Can't get DMA GEM object for fb\n"); 248 248 return -EINVAL; 249 249 } 250 250 ··· 267 267 struct drm_framebuffer *fb = newstate->fb; 268 268 struct drm_display_mode *mode; 269 269 int dst_x, dst_y; 270 - struct drm_gem_cma_object *cma_obj; 270 + struct drm_gem_dma_object *dma_obj; 271 271 u32 y, x; 272 272 u32 val; 273 273 ··· 278 278 dst_x = newstate->crtc_x; 279 279 dst_y = newstate->crtc_y; 280 280 281 - cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 281 + dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 282 282 283 283 /* Convert ARGB8888 to CLUT8 */ 284 - sti_cursor_argb8888_to_clut8(cursor, (u32 *)cma_obj->vaddr); 284 + sti_cursor_argb8888_to_clut8(cursor, (u32 *)dma_obj->vaddr); 285 285 286 286 /* AWS and AWE depend on the mode */ 287 287 y = sti_vtg_get_line_number(*mode, 0);
+3 -3
drivers/gpu/drm/sti/sti_drv.c
··· 15 15 #include <drm/drm_debugfs.h> 16 16 #include <drm/drm_drv.h> 17 17 #include <drm/drm_fb_helper.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_gem_framebuffer_helper.h> 20 20 #include <drm/drm_of.h> 21 21 #include <drm/drm_probe_helper.h> ··· 127 127 dev->mode_config.normalize_zpos = true; 128 128 } 129 129 130 - DEFINE_DRM_GEM_CMA_FOPS(sti_driver_fops); 130 + DEFINE_DRM_GEM_DMA_FOPS(sti_driver_fops); 131 131 132 132 static const struct drm_driver sti_driver = { 133 133 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, 134 134 .fops = &sti_driver_fops, 135 - DRM_GEM_CMA_DRIVER_OPS, 135 + DRM_GEM_DMA_DRIVER_OPS, 136 136 137 137 .debugfs_init = sti_drm_dbg_init, 138 138
+7 -7
drivers/gpu/drm/sti/sti_gdp.c
··· 15 15 #include <drm/drm_fb_dma_helper.h> 16 16 #include <drm/drm_fourcc.h> 17 17 #include <drm/drm_framebuffer.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 20 20 #include "sti_compositor.h" 21 21 #include "sti_gdp.h" ··· 659 659 } 660 660 661 661 if (!drm_fb_dma_get_gem_obj(fb, 0)) { 662 - DRM_ERROR("Can't get CMA GEM object for fb\n"); 662 + DRM_ERROR("Can't get DMA GEM object for fb\n"); 663 663 return -EINVAL; 664 664 } 665 665 ··· 714 714 struct drm_display_mode *mode; 715 715 int dst_x, dst_y, dst_w, dst_h; 716 716 int src_x, src_y, src_w, src_h; 717 - struct drm_gem_cma_object *cma_obj; 717 + struct drm_gem_dma_object *dma_obj; 718 718 struct sti_gdp_node_list *list; 719 719 struct sti_gdp_node_list *curr_list; 720 720 struct sti_gdp_node *top_field, *btm_field; ··· 778 778 top_field->gam_gdp_ctl |= sti_gdp_get_alpharange(format); 779 779 top_field->gam_gdp_ppt &= ~GAM_GDP_PPT_IGNORE; 780 780 781 - cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 781 + dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 782 782 783 783 DRM_DEBUG_DRIVER("drm FB:%d format:%.4s phys@:0x%lx\n", fb->base.id, 784 784 (char *)&fb->format->format, 785 - (unsigned long)cma_obj->paddr); 785 + (unsigned long)dma_obj->paddr); 786 786 787 787 /* pixel memory location */ 788 788 bpp = fb->format->cpp[0]; 789 - top_field->gam_gdp_pml = (u32)cma_obj->paddr + fb->offsets[0]; 789 + top_field->gam_gdp_pml = (u32)dma_obj->paddr + fb->offsets[0]; 790 790 top_field->gam_gdp_pml += src_x * bpp; 791 791 top_field->gam_gdp_pml += src_y * fb->pitches[0]; 792 792 ··· 831 831 dev_dbg(gdp->dev, "Current NVN:0x%X\n", 832 832 readl(gdp->regs + GAM_GDP_NVN_OFFSET)); 833 833 dev_dbg(gdp->dev, "Posted buff: %lx current buff: %x\n", 834 - (unsigned long)cma_obj->paddr, 834 + (unsigned long)dma_obj->paddr, 835 835 readl(gdp->regs + GAM_GDP_PML_OFFSET)); 836 836 837 837 if (!curr_list) {
+7 -7
drivers/gpu/drm/sti/sti_hqvdp.c
··· 19 19 #include <drm/drm_fb_dma_helper.h> 20 20 #include <drm/drm_fourcc.h> 21 21 #include <drm/drm_framebuffer.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 24 24 #include "sti_compositor.h" 25 25 #include "sti_drv.h" ··· 1056 1056 } 1057 1057 1058 1058 if (!drm_fb_dma_get_gem_obj(fb, 0)) { 1059 - DRM_ERROR("Can't get CMA GEM object for fb\n"); 1059 + DRM_ERROR("Can't get DMA GEM object for fb\n"); 1060 1060 return -EINVAL; 1061 1061 } 1062 1062 ··· 1124 1124 struct drm_display_mode *mode; 1125 1125 int dst_x, dst_y, dst_w, dst_h; 1126 1126 int src_x, src_y, src_w, src_h; 1127 - struct drm_gem_cma_object *cma_obj; 1127 + struct drm_gem_dma_object *dma_obj; 1128 1128 struct sti_hqvdp_cmd *cmd; 1129 1129 int scale_h, scale_v; 1130 1130 int cmd_offset; ··· 1178 1178 cmd->iqi.sat_gain = IQI_SAT_GAIN_DFLT; 1179 1179 cmd->iqi.pxf_conf = IQI_PXF_CONF_DFLT; 1180 1180 1181 - cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 1181 + dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 1182 1182 1183 1183 DRM_DEBUG_DRIVER("drm FB:%d format:%.4s phys@:0x%lx\n", fb->base.id, 1184 1184 (char *)&fb->format->format, 1185 - (unsigned long)cma_obj->paddr); 1185 + (unsigned long)dma_obj->paddr); 1186 1186 1187 1187 /* Buffer planes address */ 1188 - cmd->top.current_luma = (u32)cma_obj->paddr + fb->offsets[0]; 1189 - cmd->top.current_chroma = (u32)cma_obj->paddr + fb->offsets[1]; 1188 + cmd->top.current_luma = (u32)dma_obj->paddr + fb->offsets[0]; 1189 + cmd->top.current_chroma = (u32)dma_obj->paddr + fb->offsets[1]; 1190 1190 1191 1191 /* Pitches */ 1192 1192 cmd->top.luma_processed_pitch = fb->pitches[0];
+1 -1
drivers/gpu/drm/sti/sti_plane.c
··· 11 11 #include <drm/drm_blend.h> 12 12 #include <drm/drm_fourcc.h> 13 13 #include <drm/drm_framebuffer.h> 14 - #include <drm/drm_gem_cma_helper.h> 14 + #include <drm/drm_gem_dma_helper.h> 15 15 16 16 #include "sti_compositor.h" 17 17 #include "sti_drv.h"
+1 -1
drivers/gpu/drm/stm/Kconfig
··· 3 3 tristate "DRM Support for STMicroelectronics SoC Series" 4 4 depends on DRM && (ARCH_STM32 || ARCH_MULTIPLATFORM) 5 5 select DRM_KMS_HELPER 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_PANEL_BRIDGE 8 8 select VIDEOMODE_HELPERS 9 9 select FB_PROVIDE_GET_FB_UNMAPPED_AREA if FB
+5 -5
drivers/gpu/drm/stm/drv.c
··· 19 19 #include <drm/drm_atomic_helper.h> 20 20 #include <drm/drm_drv.h> 21 21 #include <drm/drm_fb_helper.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 #include <drm/drm_gem_framebuffer_helper.h> 24 24 #include <drm/drm_module.h> 25 25 #include <drm/drm_probe_helper.h> ··· 36 36 .atomic_commit = drm_atomic_helper_commit, 37 37 }; 38 38 39 - static int stm_gem_cma_dumb_create(struct drm_file *file, 39 + static int stm_gem_dma_dumb_create(struct drm_file *file, 40 40 struct drm_device *dev, 41 41 struct drm_mode_create_dumb *args) 42 42 { ··· 49 49 args->pitch = roundup(min_pitch, 128); 50 50 args->height = roundup(args->height, 4); 51 51 52 - return drm_gem_cma_dumb_create_internal(file, dev, args); 52 + return drm_gem_dma_dumb_create_internal(file, dev, args); 53 53 } 54 54 55 - DEFINE_DRM_GEM_CMA_FOPS(drv_driver_fops); 55 + DEFINE_DRM_GEM_DMA_FOPS(drv_driver_fops); 56 56 57 57 static const struct drm_driver drv_driver = { 58 58 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, ··· 63 63 .minor = 0, 64 64 .patchlevel = 0, 65 65 .fops = &drv_driver_fops, 66 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(stm_gem_cma_dumb_create), 66 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(stm_gem_dma_dumb_create), 67 67 }; 68 68 69 69 static int drv_load(struct drm_device *ddev)
+1 -1
drivers/gpu/drm/stm/ltdc.c
··· 32 32 #include <drm/drm_fourcc.h> 33 33 #include <drm/drm_framebuffer.h> 34 34 #include <drm/drm_gem_atomic_helper.h> 35 - #include <drm/drm_gem_cma_helper.h> 35 + #include <drm/drm_gem_dma_helper.h> 36 36 #include <drm/drm_of.h> 37 37 #include <drm/drm_probe_helper.h> 38 38 #include <drm/drm_simple_kms_helper.h>
+1 -1
drivers/gpu/drm/sun4i/Kconfig
··· 3 3 tristate "DRM Support for Allwinner A10 Display Engine" 4 4 depends on DRM && COMMON_CLK 5 5 depends on ARCH_SUNXI || COMPILE_TEST 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_KMS_HELPER 8 8 select DRM_PANEL 9 9 select REGMAP_MMIO
+1 -1
drivers/gpu/drm/sun4i/sun4i_backend.c
··· 22 22 #include <drm/drm_fb_dma_helper.h> 23 23 #include <drm/drm_fourcc.h> 24 24 #include <drm/drm_framebuffer.h> 25 - #include <drm/drm_gem_cma_helper.h> 25 + #include <drm/drm_gem_dma_helper.h> 26 26 #include <drm/drm_probe_helper.h> 27 27 28 28 #include "sun4i_backend.h"
+4 -4
drivers/gpu/drm/sun4i/sun4i_drv.c
··· 18 18 #include <drm/drm_atomic_helper.h> 19 19 #include <drm/drm_drv.h> 20 20 #include <drm/drm_fb_helper.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_module.h> 23 23 #include <drm/drm_of.h> 24 24 #include <drm/drm_probe_helper.h> ··· 37 37 /* The hardware only allows even pitches for YUV buffers. */ 38 38 args->pitch = ALIGN(DIV_ROUND_UP(args->width * args->bpp, 8), 2); 39 39 40 - return drm_gem_cma_dumb_create_internal(file_priv, drm, args); 40 + return drm_gem_dma_dumb_create_internal(file_priv, drm, args); 41 41 } 42 42 43 - DEFINE_DRM_GEM_CMA_FOPS(sun4i_drv_fops); 43 + DEFINE_DRM_GEM_DMA_FOPS(sun4i_drv_fops); 44 44 45 45 static const struct drm_driver sun4i_drv_driver = { 46 46 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, ··· 54 54 .minor = 0, 55 55 56 56 /* GEM Operations */ 57 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_sun4i_gem_dumb_create), 57 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_sun4i_gem_dumb_create), 58 58 }; 59 59 60 60 static int sun4i_drv_bind(struct device *dev)
+1 -1
drivers/gpu/drm/sun4i/sun4i_frontend.c
··· 17 17 #include <drm/drm_fb_dma_helper.h> 18 18 #include <drm/drm_fourcc.h> 19 19 #include <drm/drm_framebuffer.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_plane.h> 22 22 23 23 #include "sun4i_drv.h"
+1 -1
drivers/gpu/drm/sun4i/sun8i_mixer.c
··· 17 17 #include <drm/drm_atomic_helper.h> 18 18 #include <drm/drm_crtc.h> 19 19 #include <drm/drm_framebuffer.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_probe_helper.h> 22 22 23 23 #include "sun4i_drv.h"
+2 -2
drivers/gpu/drm/sun4i/sun8i_ui_layer.c
··· 17 17 #include <drm/drm_fourcc.h> 18 18 #include <drm/drm_framebuffer.h> 19 19 #include <drm/drm_gem_atomic_helper.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_probe_helper.h> 22 22 23 23 #include "sun8i_mixer.h" ··· 192 192 { 193 193 struct drm_plane_state *state = plane->state; 194 194 struct drm_framebuffer *fb = state->fb; 195 - struct drm_gem_cma_object *gem; 195 + struct drm_gem_dma_object *gem; 196 196 dma_addr_t paddr; 197 197 u32 ch_base; 198 198 int bpp;
+2 -2
drivers/gpu/drm/sun4i/sun8i_vi_layer.c
··· 10 10 #include <drm/drm_fb_dma_helper.h> 11 11 #include <drm/drm_framebuffer.h> 12 12 #include <drm/drm_gem_atomic_helper.h> 13 - #include <drm/drm_gem_cma_helper.h> 13 + #include <drm/drm_gem_dma_helper.h> 14 14 #include <drm/drm_probe_helper.h> 15 15 16 16 #include "sun8i_csc.h" ··· 308 308 struct drm_plane_state *state = plane->state; 309 309 struct drm_framebuffer *fb = state->fb; 310 310 const struct drm_format_info *format = fb->format; 311 - struct drm_gem_cma_object *gem; 311 + struct drm_gem_dma_object *gem; 312 312 u32 dx, dy, src_x, src_y; 313 313 dma_addr_t paddr; 314 314 u32 ch_base;
+1 -1
drivers/gpu/drm/tidss/Kconfig
··· 3 3 depends on DRM && OF 4 4 depends on ARM || ARM64 || COMPILE_TEST 5 5 select DRM_KMS_HELPER 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 help 8 8 The TI Keystone family SoCs introduced a new generation of 9 9 Display SubSystem. There is currently three Keystone family
+1 -1
drivers/gpu/drm/tidss/tidss_crtc.c
··· 8 8 #include <drm/drm_atomic_helper.h> 9 9 #include <drm/drm_crtc.h> 10 10 #include <drm/drm_crtc_helper.h> 11 - #include <drm/drm_gem_cma_helper.h> 11 + #include <drm/drm_gem_dma_helper.h> 12 12 #include <drm/drm_vblank.h> 13 13 14 14 #include "tidss_crtc.h"
+3 -3
drivers/gpu/drm/tidss/tidss_dispc.c
··· 26 26 #include <drm/drm_fourcc.h> 27 27 #include <drm/drm_fb_dma_helper.h> 28 28 #include <drm/drm_framebuffer.h> 29 - #include <drm/drm_gem_cma_helper.h> 29 + #include <drm/drm_gem_dma_helper.h> 30 30 #include <drm/drm_panel.h> 31 31 32 32 #include "tidss_crtc.h" ··· 1957 1957 dma_addr_t dispc_plane_state_paddr(const struct drm_plane_state *state) 1958 1958 { 1959 1959 struct drm_framebuffer *fb = state->fb; 1960 - struct drm_gem_cma_object *gem; 1960 + struct drm_gem_dma_object *gem; 1961 1961 u32 x = state->src_x >> 16; 1962 1962 u32 y = state->src_y >> 16; 1963 1963 ··· 1971 1971 dma_addr_t dispc_plane_state_p_uv_addr(const struct drm_plane_state *state) 1972 1972 { 1973 1973 struct drm_framebuffer *fb = state->fb; 1974 - struct drm_gem_cma_object *gem; 1974 + struct drm_gem_dma_object *gem; 1975 1975 u32 x = state->src_x >> 16; 1976 1976 u32 y = state->src_y >> 16; 1977 1977
+3 -3
drivers/gpu/drm/tidss/tidss_drv.c
··· 15 15 #include <drm/drm_crtc_helper.h> 16 16 #include <drm/drm_drv.h> 17 17 #include <drm/drm_fb_helper.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_managed.h> 20 20 #include <drm/drm_module.h> 21 21 #include <drm/drm_probe_helper.h> ··· 101 101 drm_kms_helper_poll_fini(ddev); 102 102 } 103 103 104 - DEFINE_DRM_GEM_CMA_FOPS(tidss_fops); 104 + DEFINE_DRM_GEM_DMA_FOPS(tidss_fops); 105 105 106 106 static const struct drm_driver tidss_driver = { 107 107 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 108 108 .fops = &tidss_fops, 109 109 .release = tidss_release, 110 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 110 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 111 111 .name = "tidss", 112 112 .desc = "TI Keystone DSS", 113 113 .date = "20180215",
+1 -1
drivers/gpu/drm/tilcdc/Kconfig
··· 3 3 tristate "DRM Support for TI LCDC Display Controller" 4 4 depends on DRM && OF && ARM 5 5 select DRM_KMS_HELPER 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_BRIDGE 8 8 select DRM_PANEL_BRIDGE 9 9 select VIDEOMODE_HELPERS
+2 -2
drivers/gpu/drm/tilcdc/tilcdc_crtc.c
··· 15 15 #include <drm/drm_fb_dma_helper.h> 16 16 #include <drm/drm_fourcc.h> 17 17 #include <drm/drm_framebuffer.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_modeset_helper_vtables.h> 20 20 #include <drm/drm_print.h> 21 21 #include <drm/drm_vblank.h> ··· 64 64 { 65 65 struct drm_device *dev = crtc->dev; 66 66 struct tilcdc_drm_private *priv = dev->dev_private; 67 - struct drm_gem_cma_object *gem; 67 + struct drm_gem_dma_object *gem; 68 68 dma_addr_t start, end; 69 69 u64 dma_base_and_ceiling; 70 70
+3 -3
drivers/gpu/drm/tilcdc/tilcdc_drv.c
··· 18 18 #include <drm/drm_drv.h> 19 19 #include <drm/drm_fb_helper.h> 20 20 #include <drm/drm_fourcc.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_gem_framebuffer_helper.h> 23 23 #include <drm/drm_mm.h> 24 24 #include <drm/drm_probe_helper.h> ··· 476 476 } 477 477 #endif 478 478 479 - DEFINE_DRM_GEM_CMA_FOPS(fops); 479 + DEFINE_DRM_GEM_DMA_FOPS(fops); 480 480 481 481 static const struct drm_driver tilcdc_driver = { 482 482 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 483 - DRM_GEM_CMA_DRIVER_OPS, 483 + DRM_GEM_DMA_DRIVER_OPS, 484 484 #ifdef CONFIG_DEBUG_FS 485 485 .debugfs_init = tilcdc_debugfs_init, 486 486 #endif
+11 -11
drivers/gpu/drm/tiny/Kconfig
··· 3 3 config DRM_ARCPGU 4 4 tristate "ARC PGU" 5 5 depends on DRM && OF 6 - select DRM_GEM_CMA_HELPER 6 + select DRM_GEM_DMA_HELPER 7 7 select DRM_KMS_HELPER 8 8 help 9 9 Choose this option if you have an ARC PGU controller. ··· 55 55 tristate "DRM support for MIPI DBI compatible panels" 56 56 depends on DRM && SPI 57 57 select DRM_KMS_HELPER 58 - select DRM_GEM_CMA_HELPER 58 + select DRM_GEM_DMA_HELPER 59 59 select DRM_MIPI_DBI 60 60 select BACKLIGHT_CLASS_DEVICE 61 61 select VIDEOMODE_HELPERS ··· 87 87 tristate "DRM support for HX8357D display panels" 88 88 depends on DRM && SPI 89 89 select DRM_KMS_HELPER 90 - select DRM_GEM_CMA_HELPER 90 + select DRM_GEM_DMA_HELPER 91 91 select DRM_MIPI_DBI 92 92 select BACKLIGHT_CLASS_DEVICE 93 93 help ··· 100 100 tristate "DRM support for ILI9163 display panels" 101 101 depends on DRM && SPI 102 102 select BACKLIGHT_CLASS_DEVICE 103 - select DRM_GEM_CMA_HELPER 103 + select DRM_GEM_DMA_HELPER 104 104 select DRM_KMS_HELPER 105 105 select DRM_MIPI_DBI 106 106 help ··· 113 113 tristate "DRM support for ILI9225 display panels" 114 114 depends on DRM && SPI 115 115 select DRM_KMS_HELPER 116 - select DRM_GEM_CMA_HELPER 116 + select DRM_GEM_DMA_HELPER 117 117 select DRM_MIPI_DBI 118 118 help 119 119 DRM driver for the following Ilitek ILI9225 panels: ··· 125 125 tristate "DRM support for ILI9341 display panels" 126 126 depends on DRM && SPI 127 127 select DRM_KMS_HELPER 128 - select DRM_GEM_CMA_HELPER 128 + select DRM_GEM_DMA_HELPER 129 129 select DRM_MIPI_DBI 130 130 select BACKLIGHT_CLASS_DEVICE 131 131 help ··· 138 138 tristate "DRM support for ILI9486 display panels" 139 139 depends on DRM && SPI 140 140 select DRM_KMS_HELPER 141 - select DRM_GEM_CMA_HELPER 141 + select DRM_GEM_DMA_HELPER 142 142 select DRM_MIPI_DBI 143 143 select BACKLIGHT_CLASS_DEVICE 144 144 help ··· 152 152 tristate "DRM support for MI0283QT" 153 153 depends on DRM && SPI 154 154 select DRM_KMS_HELPER 155 - select DRM_GEM_CMA_HELPER 155 + select DRM_GEM_DMA_HELPER 156 156 select DRM_MIPI_DBI 157 157 select BACKLIGHT_CLASS_DEVICE 158 158 help ··· 163 163 tristate "DRM support for Pervasive Displays RePaper panels (V231)" 164 164 depends on DRM && SPI 165 165 select DRM_KMS_HELPER 166 - select DRM_GEM_CMA_HELPER 166 + select DRM_GEM_DMA_HELPER 167 167 help 168 168 DRM driver for the following Pervasive Displays panels: 169 169 1.44" TFT EPD Panel (E1144CS021) ··· 177 177 tristate "DRM support for Sitronix ST7586 display panels" 178 178 depends on DRM && SPI 179 179 select DRM_KMS_HELPER 180 - select DRM_GEM_CMA_HELPER 180 + select DRM_GEM_DMA_HELPER 181 181 select DRM_MIPI_DBI 182 182 help 183 183 DRM driver for the following Sitronix ST7586 panels: ··· 189 189 tristate "DRM support for Sitronix ST7715R/ST7735R display panels" 190 190 depends on DRM && SPI 191 191 select DRM_KMS_HELPER 192 - select DRM_GEM_CMA_HELPER 192 + select DRM_GEM_DMA_HELPER 193 193 select DRM_MIPI_DBI 194 194 select BACKLIGHT_CLASS_DEVICE 195 195 help
+4 -4
drivers/gpu/drm/tiny/arcpgu.c
··· 15 15 #include <drm/drm_fb_helper.h> 16 16 #include <drm/drm_fourcc.h> 17 17 #include <drm/drm_framebuffer.h> 18 - #include <drm/drm_gem_cma_helper.h> 18 + #include <drm/drm_gem_dma_helper.h> 19 19 #include <drm/drm_gem_framebuffer_helper.h> 20 20 #include <drm/drm_module.h> 21 21 #include <drm/drm_of.h> ··· 220 220 struct drm_plane_state *state) 221 221 { 222 222 struct arcpgu_drm_private *arcpgu; 223 - struct drm_gem_cma_object *gem; 223 + struct drm_gem_dma_object *gem; 224 224 225 225 if (!pipe->plane.state->fb) 226 226 return; ··· 243 243 .atomic_commit = drm_atomic_helper_commit, 244 244 }; 245 245 246 - DEFINE_DRM_GEM_CMA_FOPS(arcpgu_drm_ops); 246 + DEFINE_DRM_GEM_DMA_FOPS(arcpgu_drm_ops); 247 247 248 248 static int arcpgu_load(struct arcpgu_drm_private *arcpgu) 249 249 { ··· 370 370 .minor = 0, 371 371 .patchlevel = 0, 372 372 .fops = &arcpgu_drm_ops, 373 - DRM_GEM_CMA_DRIVER_OPS, 373 + DRM_GEM_DMA_DRIVER_OPS, 374 374 #ifdef CONFIG_DEBUG_FS 375 375 .debugfs_init = arcpgu_debugfs_init, 376 376 #endif
+3 -3
drivers/gpu/drm/tiny/hx8357d.c
··· 20 20 #include <drm/drm_drv.h> 21 21 #include <drm/drm_fb_helper.h> 22 22 #include <drm/drm_gem_atomic_helper.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_managed.h> 25 25 #include <drm/drm_mipi_dbi.h> 26 26 #include <drm/drm_modeset_helper.h> ··· 190 190 DRM_SIMPLE_MODE(320, 480, 60, 75), 191 191 }; 192 192 193 - DEFINE_DRM_GEM_CMA_FOPS(hx8357d_fops); 193 + DEFINE_DRM_GEM_DMA_FOPS(hx8357d_fops); 194 194 195 195 static const struct drm_driver hx8357d_driver = { 196 196 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 197 197 .fops = &hx8357d_fops, 198 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 198 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 199 199 .debugfs_init = mipi_dbi_debugfs_init, 200 200 .name = "hx8357d", 201 201 .desc = "HX8357D",
+3 -3
drivers/gpu/drm/tiny/ili9163.c
··· 11 11 #include <drm/drm_drv.h> 12 12 #include <drm/drm_fb_helper.h> 13 13 #include <drm/drm_gem_atomic_helper.h> 14 - #include <drm/drm_gem_cma_helper.h> 14 + #include <drm/drm_gem_dma_helper.h> 15 15 #include <drm/drm_mipi_dbi.h> 16 16 #include <drm/drm_modeset_helper.h> 17 17 ··· 110 110 DRM_SIMPLE_MODE(128, 160, 28, 35), 111 111 }; 112 112 113 - DEFINE_DRM_GEM_CMA_FOPS(ili9163_fops); 113 + DEFINE_DRM_GEM_DMA_FOPS(ili9163_fops); 114 114 115 115 static struct drm_driver ili9163_driver = { 116 116 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 117 117 .fops = &ili9163_fops, 118 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 118 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 119 119 .debugfs_init = mipi_dbi_debugfs_init, 120 120 .name = "ili9163", 121 121 .desc = "Ilitek ILI9163",
+5 -5
drivers/gpu/drm/tiny/ili9225.c
··· 24 24 #include <drm/drm_fourcc.h> 25 25 #include <drm/drm_framebuffer.h> 26 26 #include <drm/drm_gem_atomic_helper.h> 27 - #include <drm/drm_gem_cma_helper.h> 27 + #include <drm/drm_gem_dma_helper.h> 28 28 #include <drm/drm_managed.h> 29 29 #include <drm/drm_mipi_dbi.h> 30 30 #include <drm/drm_rect.h> ··· 78 78 79 79 static void ili9225_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect) 80 80 { 81 - struct drm_gem_cma_object *cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 81 + struct drm_gem_dma_object *dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 82 82 struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev); 83 83 unsigned int height = rect->y2 - rect->y1; 84 84 unsigned int width = rect->x2 - rect->x1; ··· 104 104 if (ret) 105 105 goto err_msg; 106 106 } else { 107 - tr = cma_obj->vaddr; 107 + tr = dma_obj->vaddr; 108 108 } 109 109 110 110 switch (dbidev->rotation) { ··· 335 335 DRM_SIMPLE_MODE(176, 220, 35, 44), 336 336 }; 337 337 338 - DEFINE_DRM_GEM_CMA_FOPS(ili9225_fops); 338 + DEFINE_DRM_GEM_DMA_FOPS(ili9225_fops); 339 339 340 340 static const struct drm_driver ili9225_driver = { 341 341 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 342 342 .fops = &ili9225_fops, 343 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 343 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 344 344 .name = "ili9225", 345 345 .desc = "Ilitek ILI9225", 346 346 .date = "20171106",
+3 -3
drivers/gpu/drm/tiny/ili9341.c
··· 19 19 #include <drm/drm_drv.h> 20 20 #include <drm/drm_fb_helper.h> 21 21 #include <drm/drm_gem_atomic_helper.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 #include <drm/drm_managed.h> 24 24 #include <drm/drm_mipi_dbi.h> 25 25 #include <drm/drm_modeset_helper.h> ··· 146 146 DRM_SIMPLE_MODE(240, 320, 37, 49), 147 147 }; 148 148 149 - DEFINE_DRM_GEM_CMA_FOPS(ili9341_fops); 149 + DEFINE_DRM_GEM_DMA_FOPS(ili9341_fops); 150 150 151 151 static const struct drm_driver ili9341_driver = { 152 152 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 153 153 .fops = &ili9341_fops, 154 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 154 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 155 155 .debugfs_init = mipi_dbi_debugfs_init, 156 156 .name = "ili9341", 157 157 .desc = "Ilitek ILI9341",
+3 -3
drivers/gpu/drm/tiny/ili9486.c
··· 18 18 #include <drm/drm_drv.h> 19 19 #include <drm/drm_fb_helper.h> 20 20 #include <drm/drm_gem_atomic_helper.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_managed.h> 23 23 #include <drm/drm_mipi_dbi.h> 24 24 #include <drm/drm_modeset_helper.h> ··· 159 159 DRM_SIMPLE_MODE(480, 320, 73, 49), 160 160 }; 161 161 162 - DEFINE_DRM_GEM_CMA_FOPS(ili9486_fops); 162 + DEFINE_DRM_GEM_DMA_FOPS(ili9486_fops); 163 163 164 164 static const struct drm_driver ili9486_driver = { 165 165 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 166 166 .fops = &ili9486_fops, 167 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 167 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 168 168 .debugfs_init = mipi_dbi_debugfs_init, 169 169 .name = "ili9486", 170 170 .desc = "Ilitek ILI9486",
+3 -3
drivers/gpu/drm/tiny/mi0283qt.c
··· 17 17 #include <drm/drm_drv.h> 18 18 #include <drm/drm_fb_helper.h> 19 19 #include <drm/drm_gem_atomic_helper.h> 20 - #include <drm/drm_gem_cma_helper.h> 20 + #include <drm/drm_gem_dma_helper.h> 21 21 #include <drm/drm_managed.h> 22 22 #include <drm/drm_mipi_dbi.h> 23 23 #include <drm/drm_modeset_helper.h> ··· 150 150 DRM_SIMPLE_MODE(320, 240, 58, 43), 151 151 }; 152 152 153 - DEFINE_DRM_GEM_CMA_FOPS(mi0283qt_fops); 153 + DEFINE_DRM_GEM_DMA_FOPS(mi0283qt_fops); 154 154 155 155 static const struct drm_driver mi0283qt_driver = { 156 156 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 157 157 .fops = &mi0283qt_fops, 158 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 158 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 159 159 .debugfs_init = mipi_dbi_debugfs_init, 160 160 .name = "mi0283qt", 161 161 .desc = "Multi-Inno MI0283QT",
+3 -3
drivers/gpu/drm/tiny/panel-mipi-dbi.c
··· 18 18 #include <drm/drm_drv.h> 19 19 #include <drm/drm_fb_helper.h> 20 20 #include <drm/drm_gem_atomic_helper.h> 21 - #include <drm/drm_gem_cma_helper.h> 21 + #include <drm/drm_gem_dma_helper.h> 22 22 #include <drm/drm_managed.h> 23 23 #include <drm/drm_mipi_dbi.h> 24 24 #include <drm/drm_modes.h> ··· 217 217 .update = mipi_dbi_pipe_update, 218 218 }; 219 219 220 - DEFINE_DRM_GEM_CMA_FOPS(panel_mipi_dbi_fops); 220 + DEFINE_DRM_GEM_DMA_FOPS(panel_mipi_dbi_fops); 221 221 222 222 static const struct drm_driver panel_mipi_dbi_driver = { 223 223 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 224 224 .fops = &panel_mipi_dbi_fops, 225 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 225 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 226 226 .debugfs_init = mipi_dbi_debugfs_init, 227 227 .name = "panel-mipi-dbi", 228 228 .desc = "MIPI DBI compatible display panel",
+5 -5
drivers/gpu/drm/tiny/repaper.c
··· 30 30 #include <drm/drm_format_helper.h> 31 31 #include <drm/drm_framebuffer.h> 32 32 #include <drm/drm_gem_atomic_helper.h> 33 - #include <drm/drm_gem_cma_helper.h> 33 + #include <drm/drm_gem_dma_helper.h> 34 34 #include <drm/drm_gem_framebuffer_helper.h> 35 35 #include <drm/drm_managed.h> 36 36 #include <drm/drm_modes.h> ··· 511 511 512 512 static int repaper_fb_dirty(struct drm_framebuffer *fb) 513 513 { 514 - struct drm_gem_cma_object *cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 514 + struct drm_gem_dma_object *dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 515 515 struct repaper_epd *epd = drm_to_epd(fb->dev); 516 516 struct drm_rect clip; 517 517 int idx, ret = 0; ··· 541 541 if (ret) 542 542 goto out_free; 543 543 544 - drm_fb_xrgb8888_to_mono(buf, 0, cma_obj->vaddr, fb, &clip); 544 + drm_fb_xrgb8888_to_mono(buf, 0, dma_obj->vaddr, fb, &clip); 545 545 546 546 drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 547 547 ··· 903 903 static const u8 repaper_e2271cs021_cs[] = { 0x00, 0x00, 0x00, 0x7f, 904 904 0xff, 0xfe, 0x00, 0x00 }; 905 905 906 - DEFINE_DRM_GEM_CMA_FOPS(repaper_fops); 906 + DEFINE_DRM_GEM_DMA_FOPS(repaper_fops); 907 907 908 908 static const struct drm_driver repaper_driver = { 909 909 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 910 910 .fops = &repaper_fops, 911 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 911 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 912 912 .name = "repaper", 913 913 .desc = "Pervasive Displays RePaper e-ink panels", 914 914 .date = "20170405",
+5 -5
drivers/gpu/drm/tiny/st7586.c
··· 20 20 #include <drm/drm_format_helper.h> 21 21 #include <drm/drm_framebuffer.h> 22 22 #include <drm/drm_gem_atomic_helper.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_gem_framebuffer_helper.h> 25 25 #include <drm/drm_managed.h> 26 26 #include <drm/drm_mipi_dbi.h> ··· 92 92 static int st7586_buf_copy(void *dst, struct drm_framebuffer *fb, 93 93 struct drm_rect *clip) 94 94 { 95 - struct drm_gem_cma_object *cma_obj = drm_fb_dma_get_gem_obj(fb, 0); 96 - void *src = cma_obj->vaddr; 95 + struct drm_gem_dma_object *dma_obj = drm_fb_dma_get_gem_obj(fb, 0); 96 + void *src = dma_obj->vaddr; 97 97 int ret = 0; 98 98 99 99 ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE); ··· 269 269 DRM_SIMPLE_MODE(178, 128, 37, 27), 270 270 }; 271 271 272 - DEFINE_DRM_GEM_CMA_FOPS(st7586_fops); 272 + DEFINE_DRM_GEM_DMA_FOPS(st7586_fops); 273 273 274 274 static const struct drm_driver st7586_driver = { 275 275 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 276 276 .fops = &st7586_fops, 277 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 277 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 278 278 .debugfs_init = mipi_dbi_debugfs_init, 279 279 .name = "st7586", 280 280 .desc = "Sitronix ST7586",
+3 -3
drivers/gpu/drm/tiny/st7735r.c
··· 20 20 #include <drm/drm_drv.h> 21 21 #include <drm/drm_fb_helper.h> 22 22 #include <drm/drm_gem_atomic_helper.h> 23 - #include <drm/drm_gem_cma_helper.h> 23 + #include <drm/drm_gem_dma_helper.h> 24 24 #include <drm/drm_managed.h> 25 25 #include <drm/drm_mipi_dbi.h> 26 26 ··· 151 151 .rgb = true, 152 152 }; 153 153 154 - DEFINE_DRM_GEM_CMA_FOPS(st7735r_fops); 154 + DEFINE_DRM_GEM_DMA_FOPS(st7735r_fops); 155 155 156 156 static const struct drm_driver st7735r_driver = { 157 157 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 158 158 .fops = &st7735r_fops, 159 - DRM_GEM_CMA_DRIVER_OPS_VMAP, 159 + DRM_GEM_DMA_DRIVER_OPS_VMAP, 160 160 .debugfs_init = mipi_dbi_debugfs_init, 161 161 .name = "st7735r", 162 162 .desc = "Sitronix ST7735R",
+1 -1
drivers/gpu/drm/tve200/Kconfig
··· 8 8 select DRM_BRIDGE 9 9 select DRM_PANEL_BRIDGE 10 10 select DRM_KMS_HELPER 11 - select DRM_GEM_CMA_HELPER 11 + select DRM_GEM_DMA_HELPER 12 12 select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE 13 13 help 14 14 Choose this option for DRM support for the Faraday TV Encoder
+1 -1
drivers/gpu/drm/tve200/tve200_display.c
··· 19 19 #include <drm/drm_fourcc.h> 20 20 #include <drm/drm_framebuffer.h> 21 21 #include <drm/drm_gem_atomic_helper.h> 22 - #include <drm/drm_gem_cma_helper.h> 22 + #include <drm/drm_gem_dma_helper.h> 23 23 #include <drm/drm_panel.h> 24 24 #include <drm/drm_vblank.h> 25 25
+3 -3
drivers/gpu/drm/tve200/tve200_drv.c
··· 40 40 #include <drm/drm_bridge.h> 41 41 #include <drm/drm_drv.h> 42 42 #include <drm/drm_fb_helper.h> 43 - #include <drm/drm_gem_cma_helper.h> 43 + #include <drm/drm_gem_dma_helper.h> 44 44 #include <drm/drm_gem_framebuffer_helper.h> 45 45 #include <drm/drm_module.h> 46 46 #include <drm/drm_of.h> ··· 134 134 return ret; 135 135 } 136 136 137 - DEFINE_DRM_GEM_CMA_FOPS(drm_fops); 137 + DEFINE_DRM_GEM_DMA_FOPS(drm_fops); 138 138 139 139 static const struct drm_driver tve200_drm_driver = { 140 140 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, ··· 146 146 .major = 1, 147 147 .minor = 0, 148 148 .patchlevel = 0, 149 - DRM_GEM_CMA_DRIVER_OPS, 149 + DRM_GEM_DMA_DRIVER_OPS, 150 150 }; 151 151 152 152 static int tve200_probe(struct platform_device *pdev)
+2 -2
drivers/gpu/drm/v3d/v3d_gem.c
··· 313 313 } 314 314 315 315 job->bo = kvmalloc_array(job->bo_count, 316 - sizeof(struct drm_gem_cma_object *), 316 + sizeof(struct drm_gem_dma_object *), 317 317 GFP_KERNEL | __GFP_ZERO); 318 318 if (!job->bo) { 319 319 DRM_DEBUG("Failed to allocate validated BO pointers\n"); ··· 1092 1092 if (!v3d->pt) { 1093 1093 drm_mm_takedown(&v3d->mm); 1094 1094 dev_err(v3d->drm.dev, 1095 - "Failed to allocate page tables. Please ensure you have CMA enabled.\n"); 1095 + "Failed to allocate page tables. Please ensure you have DMA enabled.\n"); 1096 1096 return -ENOMEM; 1097 1097 } 1098 1098
+1 -1
drivers/gpu/drm/vc4/Kconfig
··· 12 12 select DRM_DISPLAY_HDMI_HELPER 13 13 select DRM_DISPLAY_HELPER 14 14 select DRM_KMS_HELPER 15 - select DRM_GEM_CMA_HELPER 15 + select DRM_GEM_DMA_HELPER 16 16 select DRM_PANEL_BRIDGE 17 17 select SND_PCM 18 18 select SND_PCM_ELD
+22 -22
drivers/gpu/drm/vc4/vc4_bo.c
··· 8 8 * 9 9 * The VC4 GPU architecture (both scanout and rendering) has direct 10 10 * access to system memory with no MMU in between. To support it, we 11 - * use the GEM CMA helper functions to allocate contiguous ranges of 11 + * use the GEM DMA helper functions to allocate contiguous ranges of 12 12 * physical memory for our BOs. 13 13 * 14 - * Since the CMA allocator is very slow, we keep a cache of recently 14 + * Since the DMA allocator is very slow, we keep a cache of recently 15 15 * freed BOs around so that the kernel's allocation of objects for 3D 16 16 * rendering can return quickly. 17 17 */ ··· 179 179 bo->validated_shader = NULL; 180 180 } 181 181 182 - drm_gem_cma_free(&bo->base); 182 + drm_gem_dma_free(&bo->base); 183 183 } 184 184 185 185 static void vc4_bo_remove_from_cache(struct vc4_bo *bo) ··· 387 387 * @dev: DRM device 388 388 * @size: Size in bytes of the memory the object will reference 389 389 * 390 - * This lets the CMA helpers allocate object structs for us, and keep 390 + * This lets the DMA helpers allocate object structs for us, and keep 391 391 * our BO stats correct. 392 392 */ 393 393 struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) ··· 426 426 { 427 427 size_t size = roundup(unaligned_size, PAGE_SIZE); 428 428 struct vc4_dev *vc4 = to_vc4_dev(dev); 429 - struct drm_gem_cma_object *cma_obj; 429 + struct drm_gem_dma_object *dma_obj; 430 430 struct vc4_bo *bo; 431 431 432 432 if (WARN_ON_ONCE(vc4->is_vc5)) ··· 443 443 return bo; 444 444 } 445 445 446 - cma_obj = drm_gem_cma_create(dev, size); 447 - if (IS_ERR(cma_obj)) { 446 + dma_obj = drm_gem_dma_create(dev, size); 447 + if (IS_ERR(dma_obj)) { 448 448 /* 449 - * If we've run out of CMA memory, kill the cache of 450 - * CMA allocations we've got laying around and try again. 449 + * If we've run out of DMA memory, kill the cache of 450 + * DMA allocations we've got laying around and try again. 451 451 */ 452 452 vc4_bo_cache_purge(dev); 453 - cma_obj = drm_gem_cma_create(dev, size); 453 + dma_obj = drm_gem_dma_create(dev, size); 454 454 } 455 455 456 - if (IS_ERR(cma_obj)) { 456 + if (IS_ERR(dma_obj)) { 457 457 /* 458 - * Still not enough CMA memory, purge the userspace BO 458 + * Still not enough DMA memory, purge the userspace BO 459 459 * cache and retry. 460 460 * This is sub-optimal since we purge the whole userspace 461 461 * BO cache which forces user that want to re-use the BO to 462 462 * restore its initial content. 463 463 * Ideally, we should purge entries one by one and retry 464 - * after each to see if CMA allocation succeeds. Or even 464 + * after each to see if DMA allocation succeeds. Or even 465 465 * better, try to find an entry with at least the same 466 466 * size. 467 467 */ 468 468 vc4_bo_userspace_cache_purge(dev); 469 - cma_obj = drm_gem_cma_create(dev, size); 469 + dma_obj = drm_gem_dma_create(dev, size); 470 470 } 471 471 472 - if (IS_ERR(cma_obj)) { 472 + if (IS_ERR(dma_obj)) { 473 473 struct drm_printer p = drm_info_printer(vc4->base.dev); 474 - DRM_ERROR("Failed to allocate from CMA:\n"); 474 + DRM_ERROR("Failed to allocate from GEM DMA helper:\n"); 475 475 vc4_bo_stats_print(&p, vc4); 476 476 return ERR_PTR(-ENOMEM); 477 477 } 478 - bo = to_vc4_bo(&cma_obj->base); 478 + bo = to_vc4_bo(&dma_obj->base); 479 479 480 480 /* By default, BOs do not support the MADV ioctl. This will be enabled 481 481 * only on BOs that are exposed to userspace (V3D, V3D_SHADER and DUMB ··· 484 484 bo->madv = __VC4_MADV_NOTSUPP; 485 485 486 486 mutex_lock(&vc4->bo_lock); 487 - vc4_bo_set_label(&cma_obj->base, type); 487 + vc4_bo_set_label(&dma_obj->base, type); 488 488 mutex_unlock(&vc4->bo_lock); 489 489 490 490 return bo; ··· 569 569 goto out; 570 570 } 571 571 572 - /* If this object was partially constructed but CMA allocation 572 + /* If this object was partially constructed but DMA allocation 573 573 * had failed, just free it. Can also happen when the BO has been 574 574 * purged. 575 575 */ ··· 747 747 return -EINVAL; 748 748 } 749 749 750 - return drm_gem_cma_mmap(&bo->base, vma); 750 + return drm_gem_dma_mmap(&bo->base, vma); 751 751 } 752 752 753 753 static const struct vm_operations_struct vc4_vm_ops = { ··· 759 759 static const struct drm_gem_object_funcs vc4_gem_object_funcs = { 760 760 .free = vc4_free_object, 761 761 .export = vc4_prime_export, 762 - .get_sg_table = drm_gem_cma_object_get_sg_table, 763 - .vmap = drm_gem_cma_object_vmap, 762 + .get_sg_table = drm_gem_dma_object_get_sg_table, 763 + .vmap = drm_gem_dma_object_vmap, 764 764 .mmap = vc4_gem_object_mmap, 765 765 .vm_ops = &vc4_vm_ops, 766 766 };
+7 -7
drivers/gpu/drm/vc4/vc4_crtc.c
··· 823 823 struct vc4_bo *bo = NULL; 824 824 825 825 if (flip_state->old_fb) { 826 - struct drm_gem_cma_object *cma_bo = 826 + struct drm_gem_dma_object *dma_bo = 827 827 drm_fb_dma_get_gem_obj(flip_state->old_fb, 0); 828 - bo = to_vc4_bo(&cma_bo->base); 828 + bo = to_vc4_bo(&dma_bo->base); 829 829 } 830 830 831 831 vc4_async_page_flip_complete(flip_state); ··· 857 857 struct vc4_async_flip_state *flip_state) 858 858 { 859 859 struct drm_framebuffer *fb = flip_state->fb; 860 - struct drm_gem_cma_object *cma_bo = drm_fb_dma_get_gem_obj(fb, 0); 860 + struct drm_gem_dma_object *dma_bo = drm_fb_dma_get_gem_obj(fb, 0); 861 861 struct vc4_dev *vc4 = to_vc4_dev(dev); 862 862 struct dma_fence *fence; 863 863 int ret; 864 864 865 865 if (!vc4->is_vc5) { 866 - struct vc4_bo *bo = to_vc4_bo(&cma_bo->base); 866 + struct vc4_bo *bo = to_vc4_bo(&dma_bo->base); 867 867 868 868 return vc4_queue_seqno_cb(dev, &flip_state->cb.seqno, bo->seqno, 869 869 vc4_async_page_flip_seqno_complete); 870 870 } 871 871 872 - ret = dma_resv_get_singleton(cma_bo->base.resv, DMA_RESV_USAGE_READ, &fence); 872 + ret = dma_resv_get_singleton(dma_bo->base.resv, DMA_RESV_USAGE_READ, &fence); 873 873 if (ret) 874 874 return ret; 875 875 ··· 945 945 { 946 946 struct drm_device *dev = crtc->dev; 947 947 struct vc4_dev *vc4 = to_vc4_dev(dev); 948 - struct drm_gem_cma_object *cma_bo = drm_fb_dma_get_gem_obj(fb, 0); 949 - struct vc4_bo *bo = to_vc4_bo(&cma_bo->base); 948 + struct drm_gem_dma_object *dma_bo = drm_fb_dma_get_gem_obj(fb, 0); 949 + struct vc4_bo *bo = to_vc4_bo(&dma_bo->base); 950 950 int ret; 951 951 952 952 if (WARN_ON_ONCE(vc4->is_vc5))
+3 -3
drivers/gpu/drm/vc4/vc4_drv.c
··· 85 85 if (ret) 86 86 return ret; 87 87 88 - return drm_gem_cma_dumb_create_internal(file_priv, dev, args); 88 + return drm_gem_dma_dumb_create_internal(file_priv, dev, args); 89 89 } 90 90 91 91 static int vc4_get_param_ioctl(struct drm_device *dev, void *data, ··· 211 211 212 212 .gem_create_object = vc4_create_object, 213 213 214 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(vc4_bo_dumb_create), 214 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(vc4_bo_dumb_create), 215 215 216 216 .ioctls = vc4_drm_ioctls, 217 217 .num_ioctls = ARRAY_SIZE(vc4_drm_ioctls), ··· 234 234 .debugfs_init = vc4_debugfs_init, 235 235 #endif 236 236 237 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(vc5_dumb_create), 237 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(vc5_dumb_create), 238 238 239 239 .fops = &vc4_drm_fops, 240 240
+9 -9
drivers/gpu/drm/vc4/vc4_drv.h
··· 14 14 #include <drm/drm_debugfs.h> 15 15 #include <drm/drm_device.h> 16 16 #include <drm/drm_encoder.h> 17 - #include <drm/drm_gem_cma_helper.h> 17 + #include <drm/drm_gem_dma_helper.h> 18 18 #include <drm/drm_managed.h> 19 19 #include <drm/drm_mm.h> 20 20 #include <drm/drm_modeset_lock.h> ··· 239 239 } 240 240 241 241 struct vc4_bo { 242 - struct drm_gem_cma_object base; 242 + struct drm_gem_dma_object base; 243 243 244 244 /* seqno of the last job to render using this BO. */ 245 245 uint64_t seqno; ··· 288 288 static inline struct vc4_bo * 289 289 to_vc4_bo(struct drm_gem_object *bo) 290 290 { 291 - return container_of(to_drm_gem_cma_obj(bo), struct vc4_bo, base); 291 + return container_of(to_drm_gem_dma_obj(bo), struct vc4_bo, base); 292 292 } 293 293 294 294 struct vc4_fence { ··· 602 602 /* This is the array of BOs that were looked up at the start of exec. 603 603 * Command validation will use indices into this array. 604 604 */ 605 - struct drm_gem_cma_object **bo; 605 + struct drm_gem_dma_object **bo; 606 606 uint32_t bo_count; 607 607 608 608 /* List of BOs that are being written by the RCL. Other than 609 609 * the binner temporary storage, this is all the BOs written 610 610 * by the job. 611 611 */ 612 - struct drm_gem_cma_object *rcl_write_bo[4]; 612 + struct drm_gem_dma_object *rcl_write_bo[4]; 613 613 uint32_t rcl_write_bo_count; 614 614 615 615 /* Pointers for our position in vc4->job_list */ ··· 628 628 /* This is the BO where we store the validated command lists, shader 629 629 * records, and uniforms. 630 630 */ 631 - struct drm_gem_cma_object *exec_bo; 631 + struct drm_gem_dma_object *exec_bo; 632 632 633 633 /** 634 634 * This tracks the per-shader-record state (packet 64) that ··· 989 989 int 990 990 vc4_validate_shader_recs(struct drm_device *dev, struct vc4_exec_info *exec); 991 991 992 - struct drm_gem_cma_object *vc4_use_bo(struct vc4_exec_info *exec, 992 + struct drm_gem_dma_object *vc4_use_bo(struct vc4_exec_info *exec, 993 993 uint32_t hindex); 994 994 995 995 int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec); 996 996 997 997 bool vc4_check_tex_size(struct vc4_exec_info *exec, 998 - struct drm_gem_cma_object *fbo, 998 + struct drm_gem_dma_object *fbo, 999 999 uint32_t offset, uint8_t tiling_format, 1000 1000 uint32_t width, uint32_t height, uint8_t cpp); 1001 1001 1002 1002 /* vc4_validate_shader.c */ 1003 1003 struct vc4_validated_shader_info * 1004 - vc4_validate_shader(struct drm_gem_cma_object *shader_obj); 1004 + vc4_validate_shader(struct drm_gem_dma_object *shader_obj); 1005 1005 1006 1006 /* vc4_perfmon.c */ 1007 1007 void vc4_perfmon_get(struct vc4_perfmon *perfmon);
+2 -2
drivers/gpu/drm/vc4/vc4_gem.c
··· 764 764 } 765 765 766 766 exec->bo = kvmalloc_array(exec->bo_count, 767 - sizeof(struct drm_gem_cma_object *), 767 + sizeof(struct drm_gem_dma_object *), 768 768 GFP_KERNEL | __GFP_ZERO); 769 769 if (!exec->bo) { 770 770 DRM_ERROR("Failed to allocate validated BO pointers\n"); ··· 797 797 } 798 798 799 799 drm_gem_object_get(bo); 800 - exec->bo[i] = (struct drm_gem_cma_object *)bo; 800 + exec->bo[i] = (struct drm_gem_dma_object *)bo; 801 801 } 802 802 spin_unlock(&file_priv->table_lock); 803 803
+2 -2
drivers/gpu/drm/vc4/vc4_plane.c
··· 339 339 { 340 340 struct vc4_plane_state *vc4_state = to_vc4_plane_state(state); 341 341 struct drm_framebuffer *fb = state->fb; 342 - struct drm_gem_cma_object *bo = drm_fb_dma_get_gem_obj(fb, 0); 342 + struct drm_gem_dma_object *bo = drm_fb_dma_get_gem_obj(fb, 0); 343 343 int num_planes = fb->format->num_planes; 344 344 struct drm_crtc_state *crtc_state; 345 345 u32 h_subsample = fb->format->hsub; ··· 1243 1243 void vc4_plane_async_set_fb(struct drm_plane *plane, struct drm_framebuffer *fb) 1244 1244 { 1245 1245 struct vc4_plane_state *vc4_state = to_vc4_plane_state(plane->state); 1246 - struct drm_gem_cma_object *bo = drm_fb_dma_get_gem_obj(fb, 0); 1246 + struct drm_gem_dma_object *bo = drm_fb_dma_get_gem_obj(fb, 0); 1247 1247 uint32_t addr; 1248 1248 1249 1249 /* We're skipping the address adjustment for negative origin,
+12 -12
drivers/gpu/drm/vc4/vc4_render_cl.c
··· 40 40 #include "vc4_packet.h" 41 41 42 42 struct vc4_rcl_setup { 43 - struct drm_gem_cma_object *color_read; 44 - struct drm_gem_cma_object *color_write; 45 - struct drm_gem_cma_object *zs_read; 46 - struct drm_gem_cma_object *zs_write; 47 - struct drm_gem_cma_object *msaa_color_write; 48 - struct drm_gem_cma_object *msaa_zs_write; 43 + struct drm_gem_dma_object *color_read; 44 + struct drm_gem_dma_object *color_write; 45 + struct drm_gem_dma_object *zs_read; 46 + struct drm_gem_dma_object *zs_write; 47 + struct drm_gem_dma_object *msaa_color_write; 48 + struct drm_gem_dma_object *msaa_zs_write; 49 49 50 - struct drm_gem_cma_object *rcl; 50 + struct drm_gem_dma_object *rcl; 51 51 u32 next_offset; 52 52 53 53 u32 next_write_bo_index; ··· 97 97 * coordinates packet, and instead just store to the address given. 98 98 */ 99 99 static uint32_t vc4_full_res_offset(struct vc4_exec_info *exec, 100 - struct drm_gem_cma_object *bo, 100 + struct drm_gem_dma_object *bo, 101 101 struct drm_vc4_submit_rcl_surface *surf, 102 102 uint8_t x, uint8_t y) 103 103 { ··· 381 381 } 382 382 383 383 static int vc4_full_res_bounds_check(struct vc4_exec_info *exec, 384 - struct drm_gem_cma_object *obj, 384 + struct drm_gem_dma_object *obj, 385 385 struct drm_vc4_submit_rcl_surface *surf) 386 386 { 387 387 struct drm_vc4_submit_cl *args = exec->args; ··· 407 407 } 408 408 409 409 static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, 410 - struct drm_gem_cma_object **obj, 410 + struct drm_gem_dma_object **obj, 411 411 struct drm_vc4_submit_rcl_surface *surf) 412 412 { 413 413 if (surf->flags != 0 || surf->bits != 0) { ··· 433 433 } 434 434 435 435 static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, 436 - struct drm_gem_cma_object **obj, 436 + struct drm_gem_dma_object **obj, 437 437 struct drm_vc4_submit_rcl_surface *surf, 438 438 bool is_write) 439 439 { ··· 533 533 static int 534 534 vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, 535 535 struct vc4_rcl_setup *setup, 536 - struct drm_gem_cma_object **obj, 536 + struct drm_gem_dma_object **obj, 537 537 struct drm_vc4_submit_rcl_surface *surf) 538 538 { 539 539 uint8_t tiling = VC4_GET_FIELD(surf->bits,
+1 -1
drivers/gpu/drm/vc4/vc4_txp.c
··· 280 280 struct drm_connector_state *conn_state = drm_atomic_get_new_connector_state(state, 281 281 conn); 282 282 struct vc4_txp *txp = connector_to_vc4_txp(conn); 283 - struct drm_gem_cma_object *gem; 283 + struct drm_gem_dma_object *gem; 284 284 struct drm_display_mode *mode; 285 285 struct drm_framebuffer *fb; 286 286 u32 ctrl;
+2 -2
drivers/gpu/drm/vc4/vc4_v3d.c
··· 231 231 * if it doesn't fit within the buffer that we allocated up front. 232 232 * However, it turns out that 16MB is "enough for anybody", and 233 233 * real-world applications run into allocation failures from the 234 - * overall CMA pool before they make scenes complicated enough to run 234 + * overall DMA pool before they make scenes complicated enough to run 235 235 * out of bin space. 236 236 */ 237 237 static int bin_bo_alloc(struct vc4_dev *vc4) ··· 261 261 262 262 dev_err(&v3d->pdev->dev, 263 263 "Failed to allocate memory for tile binning: " 264 - "%d. You may need to enable CMA or give it " 264 + "%d. You may need to enable DMA or give it " 265 265 "more memory.", 266 266 ret); 267 267 break;
+8 -8
drivers/gpu/drm/vc4/vc4_validate.c
··· 102 102 height <= 4 * utile_height(cpp)); 103 103 } 104 104 105 - struct drm_gem_cma_object * 105 + struct drm_gem_dma_object * 106 106 vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) 107 107 { 108 108 struct vc4_dev *vc4 = exec->dev; 109 - struct drm_gem_cma_object *obj; 109 + struct drm_gem_dma_object *obj; 110 110 struct vc4_bo *bo; 111 111 112 112 if (WARN_ON_ONCE(vc4->is_vc5)) ··· 129 129 return obj; 130 130 } 131 131 132 - static struct drm_gem_cma_object * 132 + static struct drm_gem_dma_object * 133 133 vc4_use_handle(struct vc4_exec_info *exec, uint32_t gem_handles_packet_index) 134 134 { 135 135 return vc4_use_bo(exec, exec->bo_index[gem_handles_packet_index]); ··· 160 160 } 161 161 162 162 bool 163 - vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, 163 + vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_dma_object *fbo, 164 164 uint32_t offset, uint8_t tiling_format, 165 165 uint32_t width, uint32_t height, uint8_t cpp) 166 166 { ··· 263 263 static int 264 264 validate_indexed_prim_list(VALIDATE_ARGS) 265 265 { 266 - struct drm_gem_cma_object *ib; 266 + struct drm_gem_dma_object *ib; 267 267 uint32_t length = *(uint32_t *)(untrusted + 1); 268 268 uint32_t offset = *(uint32_t *)(untrusted + 5); 269 269 uint32_t max_index = *(uint32_t *)(untrusted + 9); ··· 575 575 struct vc4_texture_sample_info *sample, 576 576 uint32_t texture_handle_index, bool is_cs) 577 577 { 578 - struct drm_gem_cma_object *tex; 578 + struct drm_gem_dma_object *tex; 579 579 uint32_t p0 = *(uint32_t *)(uniform_data_u + sample->p_offset[0]); 580 580 uint32_t p1 = *(uint32_t *)(uniform_data_u + sample->p_offset[1]); 581 581 uint32_t p2 = (sample->p_offset[2] != ~0 ? ··· 765 765 28, /* cs */ 766 766 }; 767 767 uint32_t shader_reloc_count = ARRAY_SIZE(shader_reloc_offsets); 768 - struct drm_gem_cma_object *bo[ARRAY_SIZE(shader_reloc_offsets) + 8]; 768 + struct drm_gem_dma_object *bo[ARRAY_SIZE(shader_reloc_offsets) + 8]; 769 769 uint32_t nr_attributes, nr_relocs, packet_size; 770 770 int i; 771 771 ··· 896 896 } 897 897 898 898 for (i = 0; i < nr_attributes; i++) { 899 - struct drm_gem_cma_object *vbo = 899 + struct drm_gem_dma_object *vbo = 900 900 bo[ARRAY_SIZE(shader_reloc_offsets) + i]; 901 901 uint32_t o = 36 + i * 8; 902 902 uint32_t offset = *(uint32_t *)(pkt_u + o + 0);
+1 -1
drivers/gpu/drm/vc4/vc4_validate_shaders.c
··· 776 776 } 777 777 778 778 struct vc4_validated_shader_info * 779 - vc4_validate_shader(struct drm_gem_cma_object *shader_obj) 779 + vc4_validate_shader(struct drm_gem_dma_object *shader_obj) 780 780 { 781 781 struct vc4_dev *vc4 = to_vc4_dev(shader_obj->base.dev); 782 782 bool found_shader_end = false;
+1 -1
drivers/gpu/drm/xlnx/Kconfig
··· 8 8 select DMA_ENGINE 9 9 select DRM_DISPLAY_DP_HELPER 10 10 select DRM_DISPLAY_HELPER 11 - select DRM_GEM_CMA_HELPER 11 + select DRM_GEM_DMA_HELPER 12 12 select DRM_KMS_HELPER 13 13 select GENERIC_PHY 14 14 help
+4 -4
drivers/gpu/drm/xlnx/zynqmp_dpsub.c
··· 21 21 #include <drm/drm_drv.h> 22 22 #include <drm/drm_fb_helper.h> 23 23 #include <drm/drm_fourcc.h> 24 - #include <drm/drm_gem_cma_helper.h> 24 + #include <drm/drm_gem_dma_helper.h> 25 25 #include <drm/drm_gem_framebuffer_helper.h> 26 26 #include <drm/drm_managed.h> 27 27 #include <drm/drm_mode_config.h> ··· 47 47 /* Enforce the alignment constraints of the DMA engine. */ 48 48 args->pitch = ALIGN(pitch, dpsub->dma_align); 49 49 50 - return drm_gem_cma_dumb_create_internal(file_priv, drm, args); 50 + return drm_gem_dma_dumb_create_internal(file_priv, drm, args); 51 51 } 52 52 53 53 static struct drm_framebuffer * ··· 75 75 * DRM/KMS Driver 76 76 */ 77 77 78 - DEFINE_DRM_GEM_CMA_FOPS(zynqmp_dpsub_drm_fops); 78 + DEFINE_DRM_GEM_DMA_FOPS(zynqmp_dpsub_drm_fops); 79 79 80 80 static const struct drm_driver zynqmp_dpsub_drm_driver = { 81 81 .driver_features = DRIVER_MODESET | DRIVER_GEM | 82 82 DRIVER_ATOMIC, 83 83 84 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(zynqmp_dpsub_dumb_create), 84 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(zynqmp_dpsub_dumb_create), 85 85 86 86 .fops = &zynqmp_dpsub_drm_fops, 87 87
+1 -1
include/drm/drm_fb_dma_helper.h
··· 8 8 struct drm_framebuffer; 9 9 struct drm_plane_state; 10 10 11 - struct drm_gem_cma_object *drm_fb_dma_get_gem_obj(struct drm_framebuffer *fb, 11 + struct drm_gem_dma_object *drm_fb_dma_get_gem_obj(struct drm_framebuffer *fb, 12 12 unsigned int plane); 13 13 14 14 dma_addr_t drm_fb_dma_get_gem_addr(struct drm_framebuffer *fb,
+1 -1
include/drm/drm_gem.h
··· 217 217 * 218 218 * SHMEM file node used as backing storage for swappable buffer objects. 219 219 * GEM also supports driver private objects with driver-specific backing 220 - * storage (contiguous CMA memory, special reserved blocks). In this 220 + * storage (contiguous DMA memory, special reserved blocks). In this 221 221 * case @filp is NULL. 222 222 */ 223 223 struct file *filp;
-279
include/drm/drm_gem_cma_helper.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0 */ 2 - #ifndef __DRM_GEM_CMA_HELPER_H__ 3 - #define __DRM_GEM_CMA_HELPER_H__ 4 - 5 - #include <drm/drm_file.h> 6 - #include <drm/drm_ioctl.h> 7 - #include <drm/drm_gem.h> 8 - 9 - struct drm_mode_create_dumb; 10 - 11 - /** 12 - * struct drm_gem_cma_object - GEM object backed by CMA memory allocations 13 - * @base: base GEM object 14 - * @paddr: physical address of the backing memory 15 - * @sgt: scatter/gather table for imported PRIME buffers. The table can have 16 - * more than one entry but they are guaranteed to have contiguous 17 - * DMA addresses. 18 - * @vaddr: kernel virtual address of the backing memory 19 - * @map_noncoherent: if true, the GEM object is backed by non-coherent memory 20 - */ 21 - struct drm_gem_cma_object { 22 - struct drm_gem_object base; 23 - dma_addr_t paddr; 24 - struct sg_table *sgt; 25 - 26 - /* For objects with DMA memory allocated by GEM CMA */ 27 - void *vaddr; 28 - 29 - bool map_noncoherent; 30 - }; 31 - 32 - #define to_drm_gem_cma_obj(gem_obj) \ 33 - container_of(gem_obj, struct drm_gem_cma_object, base) 34 - 35 - struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm, 36 - size_t size); 37 - void drm_gem_cma_free(struct drm_gem_cma_object *cma_obj); 38 - void drm_gem_cma_print_info(const struct drm_gem_cma_object *cma_obj, 39 - struct drm_printer *p, unsigned int indent); 40 - struct sg_table *drm_gem_cma_get_sg_table(struct drm_gem_cma_object *cma_obj); 41 - int drm_gem_cma_vmap(struct drm_gem_cma_object *cma_obj, 42 - struct iosys_map *map); 43 - int drm_gem_cma_mmap(struct drm_gem_cma_object *cma_obj, struct vm_area_struct *vma); 44 - 45 - extern const struct vm_operations_struct drm_gem_cma_vm_ops; 46 - 47 - /* 48 - * GEM object functions 49 - */ 50 - 51 - /** 52 - * drm_gem_cma_object_free - GEM object function for drm_gem_cma_free() 53 - * @obj: GEM object to free 54 - * 55 - * This function wraps drm_gem_cma_free_object(). Drivers that employ the CMA helpers 56 - * should use it as their &drm_gem_object_funcs.free handler. 57 - */ 58 - static inline void drm_gem_cma_object_free(struct drm_gem_object *obj) 59 - { 60 - struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); 61 - 62 - drm_gem_cma_free(cma_obj); 63 - } 64 - 65 - /** 66 - * drm_gem_cma_object_print_info() - Print &drm_gem_cma_object info for debugfs 67 - * @p: DRM printer 68 - * @indent: Tab indentation level 69 - * @obj: GEM object 70 - * 71 - * This function wraps drm_gem_cma_print_info(). Drivers that employ the CMA helpers 72 - * should use this function as their &drm_gem_object_funcs.print_info handler. 73 - */ 74 - static inline void drm_gem_cma_object_print_info(struct drm_printer *p, unsigned int indent, 75 - const struct drm_gem_object *obj) 76 - { 77 - const struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); 78 - 79 - drm_gem_cma_print_info(cma_obj, p, indent); 80 - } 81 - 82 - /** 83 - * drm_gem_cma_object_get_sg_table - GEM object function for drm_gem_cma_get_sg_table() 84 - * @obj: GEM object 85 - * 86 - * This function wraps drm_gem_cma_get_sg_table(). Drivers that employ the CMA helpers should 87 - * use it as their &drm_gem_object_funcs.get_sg_table handler. 88 - * 89 - * Returns: 90 - * A pointer to the scatter/gather table of pinned pages or NULL on failure. 91 - */ 92 - static inline struct sg_table *drm_gem_cma_object_get_sg_table(struct drm_gem_object *obj) 93 - { 94 - struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); 95 - 96 - return drm_gem_cma_get_sg_table(cma_obj); 97 - } 98 - 99 - /* 100 - * drm_gem_cma_object_vmap - GEM object function for drm_gem_cma_vmap() 101 - * @obj: GEM object 102 - * @map: Returns the kernel virtual address of the CMA GEM object's backing store. 103 - * 104 - * This function wraps drm_gem_cma_vmap(). Drivers that employ the CMA helpers should 105 - * use it as their &drm_gem_object_funcs.vmap handler. 106 - * 107 - * Returns: 108 - * 0 on success or a negative error code on failure. 109 - */ 110 - static inline int drm_gem_cma_object_vmap(struct drm_gem_object *obj, 111 - struct iosys_map *map) 112 - { 113 - struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); 114 - 115 - return drm_gem_cma_vmap(cma_obj, map); 116 - } 117 - 118 - /** 119 - * drm_gem_cma_object_mmap - GEM object function for drm_gem_cma_mmap() 120 - * @obj: GEM object 121 - * @vma: VMA for the area to be mapped 122 - * 123 - * This function wraps drm_gem_cma_mmap(). Drivers that employ the cma helpers should 124 - * use it as their &drm_gem_object_funcs.mmap handler. 125 - * 126 - * Returns: 127 - * 0 on success or a negative error code on failure. 128 - */ 129 - static inline int drm_gem_cma_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) 130 - { 131 - struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj); 132 - 133 - return drm_gem_cma_mmap(cma_obj, vma); 134 - } 135 - 136 - /* 137 - * Driver ops 138 - */ 139 - 140 - /* create memory region for DRM framebuffer */ 141 - int drm_gem_cma_dumb_create_internal(struct drm_file *file_priv, 142 - struct drm_device *drm, 143 - struct drm_mode_create_dumb *args); 144 - 145 - /* create memory region for DRM framebuffer */ 146 - int drm_gem_cma_dumb_create(struct drm_file *file_priv, 147 - struct drm_device *drm, 148 - struct drm_mode_create_dumb *args); 149 - 150 - struct drm_gem_object * 151 - drm_gem_cma_prime_import_sg_table(struct drm_device *dev, 152 - struct dma_buf_attachment *attach, 153 - struct sg_table *sgt); 154 - 155 - /** 156 - * DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE - CMA GEM driver operations 157 - * @dumb_create_func: callback function for .dumb_create 158 - * 159 - * This macro provides a shortcut for setting the default GEM operations in the 160 - * &drm_driver structure. 161 - * 162 - * This macro is a variant of DRM_GEM_CMA_DRIVER_OPS for drivers that 163 - * override the default implementation of &struct rm_driver.dumb_create. Use 164 - * DRM_GEM_CMA_DRIVER_OPS if possible. Drivers that require a virtual address 165 - * on imported buffers should use 166 - * DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead. 167 - */ 168 - #define DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(dumb_create_func) \ 169 - .dumb_create = (dumb_create_func), \ 170 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 171 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 172 - .gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table, \ 173 - .gem_prime_mmap = drm_gem_prime_mmap 174 - 175 - /** 176 - * DRM_GEM_CMA_DRIVER_OPS - CMA GEM driver operations 177 - * 178 - * This macro provides a shortcut for setting the default GEM operations in the 179 - * &drm_driver structure. 180 - * 181 - * Drivers that come with their own implementation of 182 - * &struct drm_driver.dumb_create should use 183 - * DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() instead. Use 184 - * DRM_GEM_CMA_DRIVER_OPS if possible. Drivers that require a virtual address 185 - * on imported buffers should use DRM_GEM_CMA_DRIVER_OPS_VMAP instead. 186 - */ 187 - #define DRM_GEM_CMA_DRIVER_OPS \ 188 - DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_gem_cma_dumb_create) 189 - 190 - /** 191 - * DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE - CMA GEM driver operations 192 - * ensuring a virtual address 193 - * on the buffer 194 - * @dumb_create_func: callback function for .dumb_create 195 - * 196 - * This macro provides a shortcut for setting the default GEM operations in the 197 - * &drm_driver structure for drivers that need the virtual address also on 198 - * imported buffers. 199 - * 200 - * This macro is a variant of DRM_GEM_CMA_DRIVER_OPS_VMAP for drivers that 201 - * override the default implementation of &struct drm_driver.dumb_create. Use 202 - * DRM_GEM_CMA_DRIVER_OPS_VMAP if possible. Drivers that do not require a 203 - * virtual address on imported buffers should use 204 - * DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE() instead. 205 - */ 206 - #define DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(dumb_create_func) \ 207 - .dumb_create = dumb_create_func, \ 208 - .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 209 - .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 210 - .gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table_vmap, \ 211 - .gem_prime_mmap = drm_gem_prime_mmap 212 - 213 - /** 214 - * DRM_GEM_CMA_DRIVER_OPS_VMAP - CMA GEM driver operations ensuring a virtual 215 - * address on the buffer 216 - * 217 - * This macro provides a shortcut for setting the default GEM operations in the 218 - * &drm_driver structure for drivers that need the virtual address also on 219 - * imported buffers. 220 - * 221 - * Drivers that come with their own implementation of 222 - * &struct drm_driver.dumb_create should use 223 - * DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead. Use 224 - * DRM_GEM_CMA_DRIVER_OPS_VMAP if possible. Drivers that do not require a 225 - * virtual address on imported buffers should use DRM_GEM_CMA_DRIVER_OPS 226 - * instead. 227 - */ 228 - #define DRM_GEM_CMA_DRIVER_OPS_VMAP \ 229 - DRM_GEM_CMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_gem_cma_dumb_create) 230 - 231 - struct drm_gem_object * 232 - drm_gem_cma_prime_import_sg_table_vmap(struct drm_device *drm, 233 - struct dma_buf_attachment *attach, 234 - struct sg_table *sgt); 235 - 236 - /* 237 - * File ops 238 - */ 239 - 240 - #ifndef CONFIG_MMU 241 - unsigned long drm_gem_cma_get_unmapped_area(struct file *filp, 242 - unsigned long addr, 243 - unsigned long len, 244 - unsigned long pgoff, 245 - unsigned long flags); 246 - #define DRM_GEM_CMA_UNMAPPED_AREA_FOPS \ 247 - .get_unmapped_area = drm_gem_cma_get_unmapped_area, 248 - #else 249 - #define DRM_GEM_CMA_UNMAPPED_AREA_FOPS 250 - #endif 251 - 252 - /** 253 - * DEFINE_DRM_GEM_CMA_FOPS() - macro to generate file operations for CMA drivers 254 - * @name: name for the generated structure 255 - * 256 - * This macro autogenerates a suitable &struct file_operations for CMA based 257 - * drivers, which can be assigned to &drm_driver.fops. Note that this structure 258 - * cannot be shared between drivers, because it contains a reference to the 259 - * current module using THIS_MODULE. 260 - * 261 - * Note that the declaration is already marked as static - if you need a 262 - * non-static version of this you're probably doing it wrong and will break the 263 - * THIS_MODULE reference by accident. 264 - */ 265 - #define DEFINE_DRM_GEM_CMA_FOPS(name) \ 266 - static const struct file_operations name = {\ 267 - .owner = THIS_MODULE,\ 268 - .open = drm_open,\ 269 - .release = drm_release,\ 270 - .unlocked_ioctl = drm_ioctl,\ 271 - .compat_ioctl = drm_compat_ioctl,\ 272 - .poll = drm_poll,\ 273 - .read = drm_read,\ 274 - .llseek = noop_llseek,\ 275 - .mmap = drm_gem_mmap,\ 276 - DRM_GEM_CMA_UNMAPPED_AREA_FOPS \ 277 - } 278 - 279 - #endif /* __DRM_GEM_CMA_HELPER_H__ */
+279
include/drm/drm_gem_dma_helper.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + #ifndef __DRM_GEM_DMA_HELPER_H__ 3 + #define __DRM_GEM_DMA_HELPER_H__ 4 + 5 + #include <drm/drm_file.h> 6 + #include <drm/drm_ioctl.h> 7 + #include <drm/drm_gem.h> 8 + 9 + struct drm_mode_create_dumb; 10 + 11 + /** 12 + * struct drm_gem_dma_object - GEM object backed by DMA memory allocations 13 + * @base: base GEM object 14 + * @paddr: DMA address of the backing memory 15 + * @sgt: scatter/gather table for imported PRIME buffers. The table can have 16 + * more than one entry but they are guaranteed to have contiguous 17 + * DMA addresses. 18 + * @vaddr: kernel virtual address of the backing memory 19 + * @map_noncoherent: if true, the GEM object is backed by non-coherent memory 20 + */ 21 + struct drm_gem_dma_object { 22 + struct drm_gem_object base; 23 + dma_addr_t paddr; 24 + struct sg_table *sgt; 25 + 26 + /* For objects with DMA memory allocated by GEM DMA */ 27 + void *vaddr; 28 + 29 + bool map_noncoherent; 30 + }; 31 + 32 + #define to_drm_gem_dma_obj(gem_obj) \ 33 + container_of(gem_obj, struct drm_gem_dma_object, base) 34 + 35 + struct drm_gem_dma_object *drm_gem_dma_create(struct drm_device *drm, 36 + size_t size); 37 + void drm_gem_dma_free(struct drm_gem_dma_object *dma_obj); 38 + void drm_gem_dma_print_info(const struct drm_gem_dma_object *dma_obj, 39 + struct drm_printer *p, unsigned int indent); 40 + struct sg_table *drm_gem_dma_get_sg_table(struct drm_gem_dma_object *dma_obj); 41 + int drm_gem_dma_vmap(struct drm_gem_dma_object *dma_obj, 42 + struct iosys_map *map); 43 + int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct vm_area_struct *vma); 44 + 45 + extern const struct vm_operations_struct drm_gem_dma_vm_ops; 46 + 47 + /* 48 + * GEM object functions 49 + */ 50 + 51 + /** 52 + * drm_gem_dma_object_free - GEM object function for drm_gem_dma_free() 53 + * @obj: GEM object to free 54 + * 55 + * This function wraps drm_gem_dma_free_object(). Drivers that employ the DMA helpers 56 + * should use it as their &drm_gem_object_funcs.free handler. 57 + */ 58 + static inline void drm_gem_dma_object_free(struct drm_gem_object *obj) 59 + { 60 + struct drm_gem_dma_object *dma_obj = to_drm_gem_dma_obj(obj); 61 + 62 + drm_gem_dma_free(dma_obj); 63 + } 64 + 65 + /** 66 + * drm_gem_dma_object_print_info() - Print &drm_gem_dma_object info for debugfs 67 + * @p: DRM printer 68 + * @indent: Tab indentation level 69 + * @obj: GEM object 70 + * 71 + * This function wraps drm_gem_dma_print_info(). Drivers that employ the DMA helpers 72 + * should use this function as their &drm_gem_object_funcs.print_info handler. 73 + */ 74 + static inline void drm_gem_dma_object_print_info(struct drm_printer *p, unsigned int indent, 75 + const struct drm_gem_object *obj) 76 + { 77 + const struct drm_gem_dma_object *dma_obj = to_drm_gem_dma_obj(obj); 78 + 79 + drm_gem_dma_print_info(dma_obj, p, indent); 80 + } 81 + 82 + /** 83 + * drm_gem_dma_object_get_sg_table - GEM object function for drm_gem_dma_get_sg_table() 84 + * @obj: GEM object 85 + * 86 + * This function wraps drm_gem_dma_get_sg_table(). Drivers that employ the DMA helpers should 87 + * use it as their &drm_gem_object_funcs.get_sg_table handler. 88 + * 89 + * Returns: 90 + * A pointer to the scatter/gather table of pinned pages or NULL on failure. 91 + */ 92 + static inline struct sg_table *drm_gem_dma_object_get_sg_table(struct drm_gem_object *obj) 93 + { 94 + struct drm_gem_dma_object *dma_obj = to_drm_gem_dma_obj(obj); 95 + 96 + return drm_gem_dma_get_sg_table(dma_obj); 97 + } 98 + 99 + /* 100 + * drm_gem_dma_object_vmap - GEM object function for drm_gem_dma_vmap() 101 + * @obj: GEM object 102 + * @map: Returns the kernel virtual address of the DMA GEM object's backing store. 103 + * 104 + * This function wraps drm_gem_dma_vmap(). Drivers that employ the DMA helpers should 105 + * use it as their &drm_gem_object_funcs.vmap handler. 106 + * 107 + * Returns: 108 + * 0 on success or a negative error code on failure. 109 + */ 110 + static inline int drm_gem_dma_object_vmap(struct drm_gem_object *obj, 111 + struct iosys_map *map) 112 + { 113 + struct drm_gem_dma_object *dma_obj = to_drm_gem_dma_obj(obj); 114 + 115 + return drm_gem_dma_vmap(dma_obj, map); 116 + } 117 + 118 + /** 119 + * drm_gem_dma_object_mmap - GEM object function for drm_gem_dma_mmap() 120 + * @obj: GEM object 121 + * @vma: VMA for the area to be mapped 122 + * 123 + * This function wraps drm_gem_dma_mmap(). Drivers that employ the dma helpers should 124 + * use it as their &drm_gem_object_funcs.mmap handler. 125 + * 126 + * Returns: 127 + * 0 on success or a negative error code on failure. 128 + */ 129 + static inline int drm_gem_dma_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) 130 + { 131 + struct drm_gem_dma_object *dma_obj = to_drm_gem_dma_obj(obj); 132 + 133 + return drm_gem_dma_mmap(dma_obj, vma); 134 + } 135 + 136 + /* 137 + * Driver ops 138 + */ 139 + 140 + /* create memory region for DRM framebuffer */ 141 + int drm_gem_dma_dumb_create_internal(struct drm_file *file_priv, 142 + struct drm_device *drm, 143 + struct drm_mode_create_dumb *args); 144 + 145 + /* create memory region for DRM framebuffer */ 146 + int drm_gem_dma_dumb_create(struct drm_file *file_priv, 147 + struct drm_device *drm, 148 + struct drm_mode_create_dumb *args); 149 + 150 + struct drm_gem_object * 151 + drm_gem_dma_prime_import_sg_table(struct drm_device *dev, 152 + struct dma_buf_attachment *attach, 153 + struct sg_table *sgt); 154 + 155 + /** 156 + * DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE - DMA GEM driver operations 157 + * @dumb_create_func: callback function for .dumb_create 158 + * 159 + * This macro provides a shortcut for setting the default GEM operations in the 160 + * &drm_driver structure. 161 + * 162 + * This macro is a variant of DRM_GEM_DMA_DRIVER_OPS for drivers that 163 + * override the default implementation of &struct rm_driver.dumb_create. Use 164 + * DRM_GEM_DMA_DRIVER_OPS if possible. Drivers that require a virtual address 165 + * on imported buffers should use 166 + * DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead. 167 + */ 168 + #define DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(dumb_create_func) \ 169 + .dumb_create = (dumb_create_func), \ 170 + .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 171 + .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 172 + .gem_prime_import_sg_table = drm_gem_dma_prime_import_sg_table, \ 173 + .gem_prime_mmap = drm_gem_prime_mmap 174 + 175 + /** 176 + * DRM_GEM_DMA_DRIVER_OPS - DMA GEM driver operations 177 + * 178 + * This macro provides a shortcut for setting the default GEM operations in the 179 + * &drm_driver structure. 180 + * 181 + * Drivers that come with their own implementation of 182 + * &struct drm_driver.dumb_create should use 183 + * DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() instead. Use 184 + * DRM_GEM_DMA_DRIVER_OPS if possible. Drivers that require a virtual address 185 + * on imported buffers should use DRM_GEM_DMA_DRIVER_OPS_VMAP instead. 186 + */ 187 + #define DRM_GEM_DMA_DRIVER_OPS \ 188 + DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_gem_dma_dumb_create) 189 + 190 + /** 191 + * DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE - DMA GEM driver operations 192 + * ensuring a virtual address 193 + * on the buffer 194 + * @dumb_create_func: callback function for .dumb_create 195 + * 196 + * This macro provides a shortcut for setting the default GEM operations in the 197 + * &drm_driver structure for drivers that need the virtual address also on 198 + * imported buffers. 199 + * 200 + * This macro is a variant of DRM_GEM_DMA_DRIVER_OPS_VMAP for drivers that 201 + * override the default implementation of &struct drm_driver.dumb_create. Use 202 + * DRM_GEM_DMA_DRIVER_OPS_VMAP if possible. Drivers that do not require a 203 + * virtual address on imported buffers should use 204 + * DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE() instead. 205 + */ 206 + #define DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(dumb_create_func) \ 207 + .dumb_create = dumb_create_func, \ 208 + .prime_handle_to_fd = drm_gem_prime_handle_to_fd, \ 209 + .prime_fd_to_handle = drm_gem_prime_fd_to_handle, \ 210 + .gem_prime_import_sg_table = drm_gem_dma_prime_import_sg_table_vmap, \ 211 + .gem_prime_mmap = drm_gem_prime_mmap 212 + 213 + /** 214 + * DRM_GEM_DMA_DRIVER_OPS_VMAP - DMA GEM driver operations ensuring a virtual 215 + * address on the buffer 216 + * 217 + * This macro provides a shortcut for setting the default GEM operations in the 218 + * &drm_driver structure for drivers that need the virtual address also on 219 + * imported buffers. 220 + * 221 + * Drivers that come with their own implementation of 222 + * &struct drm_driver.dumb_create should use 223 + * DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE() instead. Use 224 + * DRM_GEM_DMA_DRIVER_OPS_VMAP if possible. Drivers that do not require a 225 + * virtual address on imported buffers should use DRM_GEM_DMA_DRIVER_OPS 226 + * instead. 227 + */ 228 + #define DRM_GEM_DMA_DRIVER_OPS_VMAP \ 229 + DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_gem_dma_dumb_create) 230 + 231 + struct drm_gem_object * 232 + drm_gem_dma_prime_import_sg_table_vmap(struct drm_device *drm, 233 + struct dma_buf_attachment *attach, 234 + struct sg_table *sgt); 235 + 236 + /* 237 + * File ops 238 + */ 239 + 240 + #ifndef CONFIG_MMU 241 + unsigned long drm_gem_dma_get_unmapped_area(struct file *filp, 242 + unsigned long addr, 243 + unsigned long len, 244 + unsigned long pgoff, 245 + unsigned long flags); 246 + #define DRM_GEM_DMA_UNMAPPED_AREA_FOPS \ 247 + .get_unmapped_area = drm_gem_dma_get_unmapped_area, 248 + #else 249 + #define DRM_GEM_DMA_UNMAPPED_AREA_FOPS 250 + #endif 251 + 252 + /** 253 + * DEFINE_DRM_GEM_DMA_FOPS() - macro to generate file operations for DMA drivers 254 + * @name: name for the generated structure 255 + * 256 + * This macro autogenerates a suitable &struct file_operations for DMA based 257 + * drivers, which can be assigned to &drm_driver.fops. Note that this structure 258 + * cannot be shared between drivers, because it contains a reference to the 259 + * current module using THIS_MODULE. 260 + * 261 + * Note that the declaration is already marked as static - if you need a 262 + * non-static version of this you're probably doing it wrong and will break the 263 + * THIS_MODULE reference by accident. 264 + */ 265 + #define DEFINE_DRM_GEM_DMA_FOPS(name) \ 266 + static const struct file_operations name = {\ 267 + .owner = THIS_MODULE,\ 268 + .open = drm_open,\ 269 + .release = drm_release,\ 270 + .unlocked_ioctl = drm_ioctl,\ 271 + .compat_ioctl = drm_compat_ioctl,\ 272 + .poll = drm_poll,\ 273 + .read = drm_read,\ 274 + .llseek = noop_llseek,\ 275 + .mmap = drm_gem_mmap,\ 276 + DRM_GEM_DMA_UNMAPPED_AREA_FOPS \ 277 + } 278 + 279 + #endif /* __DRM_GEM_DMA_HELPER_H__ */