mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
dma-buf: consolidate dma_fence subclass checking
Consolidate the wrapper functions to check for dma_fence subclasses in the dma_fence header. This makes it easier to document and also check the different requirements for fence containers in the subclasses. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220204100429.2049-2-christian.koenig@amd.com
This commit is contained in:
@@ -587,4 +587,42 @@ struct dma_fence *dma_fence_get_stub(void);
|
||||
struct dma_fence *dma_fence_allocate_private_stub(void);
|
||||
u64 dma_fence_context_alloc(unsigned num);
|
||||
|
||||
extern const struct dma_fence_ops dma_fence_array_ops;
|
||||
extern const struct dma_fence_ops dma_fence_chain_ops;
|
||||
|
||||
/**
|
||||
* dma_fence_is_array - check if a fence is from the array subclass
|
||||
* @fence: the fence to test
|
||||
*
|
||||
* Return true if it is a dma_fence_array and false otherwise.
|
||||
*/
|
||||
static inline bool dma_fence_is_array(struct dma_fence *fence)
|
||||
{
|
||||
return fence->ops == &dma_fence_array_ops;
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_fence_is_chain - check if a fence is from the chain subclass
|
||||
* @fence: the fence to test
|
||||
*
|
||||
* Return true if it is a dma_fence_chain and false otherwise.
|
||||
*/
|
||||
static inline bool dma_fence_is_chain(struct dma_fence *fence)
|
||||
{
|
||||
return fence->ops == &dma_fence_chain_ops;
|
||||
}
|
||||
|
||||
/**
|
||||
* dma_fence_is_container - check if a fence is a container for other fences
|
||||
* @fence: the fence to test
|
||||
*
|
||||
* Return true if this fence is a container for other fences, false otherwise.
|
||||
* This is important since we can't build up large fence structure or otherwise
|
||||
* we run into recursion during operation on those fences.
|
||||
*/
|
||||
static inline bool dma_fence_is_container(struct dma_fence *fence)
|
||||
{
|
||||
return dma_fence_is_array(fence) || dma_fence_is_chain(fence);
|
||||
}
|
||||
|
||||
#endif /* __LINUX_DMA_FENCE_H */
|
||||
|
||||
Reference in New Issue
Block a user