1*8aa5bcb6SMikko Perttunen /* SPDX-License-Identifier: GPL-2.0-only */ 2*8aa5bcb6SMikko Perttunen /* 3*8aa5bcb6SMikko Perttunen * Host1x context devices 4*8aa5bcb6SMikko Perttunen * 5*8aa5bcb6SMikko Perttunen * Copyright (c) 2020, NVIDIA Corporation. 6*8aa5bcb6SMikko Perttunen */ 7*8aa5bcb6SMikko Perttunen 8*8aa5bcb6SMikko Perttunen #ifndef __HOST1X_CONTEXT_H 9*8aa5bcb6SMikko Perttunen #define __HOST1X_CONTEXT_H 10*8aa5bcb6SMikko Perttunen 11*8aa5bcb6SMikko Perttunen #include <linux/mutex.h> 12*8aa5bcb6SMikko Perttunen #include <linux/refcount.h> 13*8aa5bcb6SMikko Perttunen 14*8aa5bcb6SMikko Perttunen struct host1x; 15*8aa5bcb6SMikko Perttunen 16*8aa5bcb6SMikko Perttunen extern struct bus_type host1x_context_device_bus_type; 17*8aa5bcb6SMikko Perttunen 18*8aa5bcb6SMikko Perttunen struct host1x_memory_context_list { 19*8aa5bcb6SMikko Perttunen struct mutex lock; 20*8aa5bcb6SMikko Perttunen struct host1x_memory_context *devs; 21*8aa5bcb6SMikko Perttunen unsigned int len; 22*8aa5bcb6SMikko Perttunen }; 23*8aa5bcb6SMikko Perttunen 24*8aa5bcb6SMikko Perttunen #ifdef CONFIG_IOMMU_API 25*8aa5bcb6SMikko Perttunen int host1x_memory_context_list_init(struct host1x *host1x); 26*8aa5bcb6SMikko Perttunen void host1x_memory_context_list_free(struct host1x_memory_context_list *cdl); 27*8aa5bcb6SMikko Perttunen #else host1x_memory_context_list_init(struct host1x * host1x)28*8aa5bcb6SMikko Perttunenstatic inline int host1x_memory_context_list_init(struct host1x *host1x) 29*8aa5bcb6SMikko Perttunen { 30*8aa5bcb6SMikko Perttunen return 0; 31*8aa5bcb6SMikko Perttunen } 32*8aa5bcb6SMikko Perttunen host1x_memory_context_list_free(struct host1x_memory_context_list * cdl)33*8aa5bcb6SMikko Perttunenstatic inline void host1x_memory_context_list_free(struct host1x_memory_context_list *cdl) 34*8aa5bcb6SMikko Perttunen { 35*8aa5bcb6SMikko Perttunen } 36*8aa5bcb6SMikko Perttunen #endif 37*8aa5bcb6SMikko Perttunen 38*8aa5bcb6SMikko Perttunen #endif 39