xref: /linux/include/uapi/drm/armada_drm.h (revision e5c86679d5e864947a52fb31e45a425dea3e7fa9)
1 /*
2  * Copyright (C) 2012 Russell King
3  *  With inspiration from the i915 driver
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  */
9 #ifndef DRM_ARMADA_IOCTL_H
10 #define DRM_ARMADA_IOCTL_H
11 
12 #include "drm.h"
13 
14 #if defined(__cplusplus)
15 extern "C" {
16 #endif
17 
18 #define DRM_ARMADA_GEM_CREATE		0x00
19 #define DRM_ARMADA_GEM_MMAP		0x02
20 #define DRM_ARMADA_GEM_PWRITE		0x03
21 
22 #define ARMADA_IOCTL(dir, name, str) \
23 	DRM_##dir(DRM_COMMAND_BASE + DRM_ARMADA_##name, struct drm_armada_##str)
24 
25 struct drm_armada_gem_create {
26 	uint32_t handle;
27 	uint32_t size;
28 };
29 #define DRM_IOCTL_ARMADA_GEM_CREATE \
30 	ARMADA_IOCTL(IOWR, GEM_CREATE, gem_create)
31 
32 struct drm_armada_gem_mmap {
33 	uint32_t handle;
34 	uint32_t pad;
35 	uint64_t offset;
36 	uint64_t size;
37 	uint64_t addr;
38 };
39 #define DRM_IOCTL_ARMADA_GEM_MMAP \
40 	ARMADA_IOCTL(IOWR, GEM_MMAP, gem_mmap)
41 
42 struct drm_armada_gem_pwrite {
43 	uint64_t ptr;
44 	uint32_t handle;
45 	uint32_t offset;
46 	uint32_t size;
47 };
48 #define DRM_IOCTL_ARMADA_GEM_PWRITE \
49 	ARMADA_IOCTL(IOW, GEM_PWRITE, gem_pwrite)
50 
51 #if defined(__cplusplus)
52 }
53 #endif
54 
55 #endif
56