3232 * The DRM GEM/CMA helpers use this allocator as a means to provide buffer
3333 * objects that are physically contiguous in memory. This is useful for
3434 * display drivers that are unable to map scattered buffers via an IOMMU.
35+ *
36+ * For GEM callback helpers in struct &drm_gem_object functions, see likewise
37+ * named functions with an _object_ infix (e.g., drm_gem_cma_object_vmap() wraps
38+ * drm_gem_cma_vmap()). These helpers perform the necessary type conversion.
3539 */
3640
3741static const struct drm_gem_object_funcs drm_gem_cma_default_funcs = {
@@ -192,16 +196,16 @@ drm_gem_cma_create_with_handle(struct drm_file *file_priv,
192196}
193197
194198/**
195- * drm_gem_cma_free_object - free resources associated with a CMA GEM object
196- * @gem_obj: GEM object to free
199+ * drm_gem_cma_free - free resources associated with a CMA GEM object
200+ * @cma_obj: CMA GEM object to free
197201 *
198202 * This function frees the backing memory of the CMA GEM object, cleans up the
199203 * GEM object state and frees the memory used to store the object itself.
200204 * If the buffer is imported and the virtual address is set, it is released.
201205 */
202- void drm_gem_cma_free_object (struct drm_gem_object * gem_obj )
206+ void drm_gem_cma_free (struct drm_gem_cma_object * cma_obj )
203207{
204- struct drm_gem_cma_object * cma_obj = to_drm_gem_cma_obj ( gem_obj ) ;
208+ struct drm_gem_object * gem_obj = & cma_obj -> base ;
205209 struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR (cma_obj -> vaddr );
206210
207211 if (gem_obj -> import_attach ) {
@@ -217,7 +221,7 @@ void drm_gem_cma_free_object(struct drm_gem_object *gem_obj)
217221
218222 kfree (cma_obj );
219223}
220- EXPORT_SYMBOL_GPL (drm_gem_cma_free_object );
224+ EXPORT_SYMBOL_GPL (drm_gem_cma_free );
221225
222226/**
223227 * drm_gem_cma_dumb_create_internal - create a dumb buffer object
@@ -364,18 +368,15 @@ EXPORT_SYMBOL_GPL(drm_gem_cma_get_unmapped_area);
364368
365369/**
366370 * drm_gem_cma_print_info() - Print &drm_gem_cma_object info for debugfs
371+ * @cma_obj: CMA GEM object
367372 * @p: DRM printer
368373 * @indent: Tab indentation level
369- * @obj: GEM object
370374 *
371- * This function can be used as the &drm_driver->gem_print_info callback.
372- * It prints paddr and vaddr for use in e.g. debugfs output.
375+ * This function prints paddr and vaddr for use in e.g. debugfs output.
373376 */
374- void drm_gem_cma_print_info (struct drm_printer * p , unsigned int indent ,
375- const struct drm_gem_object * obj )
377+ void drm_gem_cma_print_info (const struct drm_gem_cma_object * cma_obj ,
378+ struct drm_printer * p , unsigned int indent )
376379{
377- const struct drm_gem_cma_object * cma_obj = to_drm_gem_cma_obj (obj );
378-
379380 drm_printf_indent (p , indent , "paddr=%pad\n" , & cma_obj -> paddr );
380381 drm_printf_indent (p , indent , "vaddr=%p\n" , cma_obj -> vaddr );
381382}
@@ -384,17 +385,17 @@ EXPORT_SYMBOL(drm_gem_cma_print_info);
384385/**
385386 * drm_gem_cma_get_sg_table - provide a scatter/gather table of pinned
386387 * pages for a CMA GEM object
387- * @obj: GEM object
388+ * @cma_obj: CMA GEM object
388389 *
389390 * This function exports a scatter/gather table by calling the standard
390391 * DMA mapping API.
391392 *
392393 * Returns:
393394 * A pointer to the scatter/gather table of pinned pages or NULL on failure.
394395 */
395- struct sg_table * drm_gem_cma_get_sg_table (struct drm_gem_object * obj )
396+ struct sg_table * drm_gem_cma_get_sg_table (struct drm_gem_cma_object * cma_obj )
396397{
397- struct drm_gem_cma_object * cma_obj = to_drm_gem_cma_obj ( obj ) ;
398+ struct drm_gem_object * obj = & cma_obj -> base ;
398399 struct sg_table * sgt ;
399400 int ret ;
400401
@@ -460,22 +461,19 @@ EXPORT_SYMBOL_GPL(drm_gem_cma_prime_import_sg_table);
460461/**
461462 * drm_gem_cma_vmap - map a CMA GEM object into the kernel's virtual
462463 * address space
463- * @obj: GEM object
464+ * @cma_obj: CMA GEM object
464465 * @map: Returns the kernel virtual address of the CMA GEM object's backing
465466 * store.
466467 *
467- * This function maps a buffer into the kernel's
468- * virtual address space. Since the CMA buffers are already mapped into the
469- * kernel virtual address space this simply returns the cached virtual
470- * address.
468+ * This function maps a buffer into the kernel's virtual address space.
469+ * Since the CMA buffers are already mapped into the kernel virtual address
470+ * space this simply returns the cached virtual address.
471471 *
472472 * Returns:
473473 * 0 on success, or a negative error code otherwise.
474474 */
475- int drm_gem_cma_vmap (struct drm_gem_object * obj , struct dma_buf_map * map )
475+ int drm_gem_cma_vmap (struct drm_gem_cma_object * cma_obj , struct dma_buf_map * map )
476476{
477- struct drm_gem_cma_object * cma_obj = to_drm_gem_cma_obj (obj );
478-
479477 dma_buf_map_set_vaddr (map , cma_obj -> vaddr );
480478
481479 return 0 ;
@@ -484,7 +482,7 @@ EXPORT_SYMBOL_GPL(drm_gem_cma_vmap);
484482
485483/**
486484 * drm_gem_cma_mmap - memory-map an exported CMA GEM object
487- * @obj: GEM object
485+ * @cma_obj: CMA GEM object
488486 * @vma: VMA for the area to be mapped
489487 *
490488 * This function maps a buffer into a userspace process's address space.
@@ -494,9 +492,9 @@ EXPORT_SYMBOL_GPL(drm_gem_cma_vmap);
494492 * Returns:
495493 * 0 on success or a negative error code on failure.
496494 */
497- int drm_gem_cma_mmap (struct drm_gem_object * obj , struct vm_area_struct * vma )
495+ int drm_gem_cma_mmap (struct drm_gem_cma_object * cma_obj , struct vm_area_struct * vma )
498496{
499- struct drm_gem_cma_object * cma_obj ;
497+ struct drm_gem_object * obj = & cma_obj -> base ;
500498 int ret ;
501499
502500 /*
@@ -507,8 +505,6 @@ int drm_gem_cma_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
507505 vma -> vm_pgoff -= drm_vma_node_start (& obj -> vma_node );
508506 vma -> vm_flags &= ~VM_PFNMAP ;
509507
510- cma_obj = to_drm_gem_cma_obj (obj );
511-
512508 if (cma_obj -> map_noncoherent ) {
513509 vma -> vm_page_prot = vm_get_page_prot (vma -> vm_flags );
514510
0 commit comments