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