xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/midgard/mali_base_mem_priv.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *
3  * (C) COPYRIGHT 2010-2014 ARM Limited. All rights reserved.
4  *
5  * This program is free software and is provided to you under the terms of the
6  * GNU General Public License version 2 as published by the Free Software
7  * Foundation, and any use by you of this program is subject to the terms
8  * of such GNU licence.
9  *
10  * A copy of the licence is included with the program, and can also be obtained
11  * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
12  * Boston, MA  02110-1301, USA.
13  *
14  */
15 
16 
17 
18 
19 
20 #ifndef _BASE_MEM_PRIV_H_
21 #define _BASE_MEM_PRIV_H_
22 
23 #define BASE_SYNCSET_OP_MSYNC	(1U << 0)
24 #define BASE_SYNCSET_OP_CSYNC	(1U << 1)
25 
26 /*
27  * This structure describe a basic memory coherency operation.
28  * It can either be:
29  * @li a sync from CPU to Memory:
30  *	- type = ::BASE_SYNCSET_OP_MSYNC
31  *	- mem_handle = a handle to the memory object on which the operation
32  *	  is taking place
33  *	- user_addr = the address of the range to be synced
34  *	- size = the amount of data to be synced, in bytes
35  *	- offset is ignored.
36  * @li a sync from Memory to CPU:
37  *	- type = ::BASE_SYNCSET_OP_CSYNC
38  *	- mem_handle = a handle to the memory object on which the operation
39  *	  is taking place
40  *	- user_addr = the address of the range to be synced
41  *	- size = the amount of data to be synced, in bytes.
42  *	- offset is ignored.
43  */
44 struct basep_syncset {
45 	base_mem_handle mem_handle;
46 	u64 user_addr;
47 	u64 size;
48 	u8 type;
49 	u8 padding[7];
50 };
51 
52 #endif
53