mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
c136883b10
There's no proper way to document function pointer members, but at least silence the warnings. Cc: Christian Koenig <christian.koenig@amd.com> Cc: Huang Rui <ray.huang@amd.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/e80e74ac4b6c5f1df3bc2dd98651ba289aae8e83.1709898638.git.jani.nikula@intel.com
62 lines
1.8 KiB
C
62 lines
1.8 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2021 Intel Corporation
|
|
*/
|
|
#ifndef __TTM_KMAP_ITER_H__
|
|
#define __TTM_KMAP_ITER_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct ttm_kmap_iter;
|
|
struct iosys_map;
|
|
|
|
/**
|
|
* struct ttm_kmap_iter_ops - Ops structure for a struct
|
|
* ttm_kmap_iter.
|
|
* @maps_tt: Whether the iterator maps TT memory directly, as opposed
|
|
* mapping a TT through an aperture. Both these modes have
|
|
* struct ttm_resource_manager::use_tt set, but the latter typically
|
|
* returns is_iomem == true from ttm_mem_io_reserve.
|
|
*/
|
|
struct ttm_kmap_iter_ops {
|
|
/**
|
|
* @map_local: Map a PAGE_SIZE part of the resource using
|
|
* kmap_local semantics.
|
|
* @res_iter: Pointer to the struct ttm_kmap_iter representing
|
|
* the resource.
|
|
* @dmap: The struct iosys_map holding the virtual address after
|
|
* the operation.
|
|
* @i: The location within the resource to map. PAGE_SIZE granularity.
|
|
*/
|
|
void (*map_local)(struct ttm_kmap_iter *res_iter,
|
|
struct iosys_map *dmap, pgoff_t i);
|
|
/**
|
|
* @unmap_local: Unmap a PAGE_SIZE part of the resource previously
|
|
* mapped using kmap_local.
|
|
* @res_iter: Pointer to the struct ttm_kmap_iter representing
|
|
* the resource.
|
|
* @dmap: The struct iosys_map holding the virtual address after
|
|
* the operation.
|
|
*/
|
|
void (*unmap_local)(struct ttm_kmap_iter *res_iter,
|
|
struct iosys_map *dmap);
|
|
bool maps_tt;
|
|
};
|
|
|
|
/**
|
|
* struct ttm_kmap_iter - Iterator for kmap_local type operations on a
|
|
* resource.
|
|
* @ops: Pointer to the operations struct.
|
|
*
|
|
* This struct is intended to be embedded in a resource-specific specialization
|
|
* implementing operations for the resource.
|
|
*
|
|
* Nothing stops us from extending the operations to vmap, vmap_pfn etc,
|
|
* replacing some or parts of the ttm_bo_util. cpu-map functionality.
|
|
*/
|
|
struct ttm_kmap_iter {
|
|
const struct ttm_kmap_iter_ops *ops;
|
|
};
|
|
|
|
#endif /* __TTM_KMAP_ITER_H__ */
|