-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/vc4: Add create and map BO ioctls.
While there exist dumb APIs for creating and mapping BOs, one of the rules is that drivers doing 3D acceleration have to provide their own APIs for buffer allocation (besides, the pitch/height parameters of the dumb alloc don't really make sense for a lot of 3D allocations). v2: Use __u32-style types, use "drm.h" instead of <drm/drm.h>. Signed-off-by: Eric Anholt <eric@anholt.net>
- Loading branch information
Eric Anholt
committed
Dec 8, 2015
1 parent
c826a6e
commit d5bc60f
Showing
5 changed files
with
117 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* Copyright © 2014-2015 Broadcom | ||
* | ||
* Permission is hereby granted, free of charge, to any person obtaining a | ||
* copy of this software and associated documentation files (the "Software"), | ||
* to deal in the Software without restriction, including without limitation | ||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
* and/or sell copies of the Software, and to permit persons to whom the | ||
* Software is furnished to do so, subject to the following conditions: | ||
* | ||
* The above copyright notice and this permission notice (including the next | ||
* paragraph) shall be included in all copies or substantial portions of the | ||
* Software. | ||
* | ||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
* IN THE SOFTWARE. | ||
*/ | ||
|
||
#ifndef _UAPI_VC4_DRM_H_ | ||
#define _UAPI_VC4_DRM_H_ | ||
|
||
#include "drm.h" | ||
|
||
#define DRM_VC4_CREATE_BO 0x03 | ||
#define DRM_VC4_MMAP_BO 0x04 | ||
|
||
#define DRM_IOCTL_VC4_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_BO, struct drm_vc4_create_bo) | ||
#define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo) | ||
|
||
/** | ||
* struct drm_vc4_create_bo - ioctl argument for creating VC4 BOs. | ||
* | ||
* There are currently no values for the flags argument, but it may be | ||
* used in a future extension. | ||
*/ | ||
struct drm_vc4_create_bo { | ||
__u32 size; | ||
__u32 flags; | ||
/** Returned GEM handle for the BO. */ | ||
__u32 handle; | ||
__u32 pad; | ||
}; | ||
|
||
/** | ||
* struct drm_vc4_mmap_bo - ioctl argument for mapping VC4 BOs. | ||
* | ||
* This doesn't actually perform an mmap. Instead, it returns the | ||
* offset you need to use in an mmap on the DRM device node. This | ||
* means that tools like valgrind end up knowing about the mapped | ||
* memory. | ||
* | ||
* There are currently no values for the flags argument, but it may be | ||
* used in a future extension. | ||
*/ | ||
struct drm_vc4_mmap_bo { | ||
/** Handle for the object being mapped. */ | ||
__u32 handle; | ||
__u32 flags; | ||
/** offset into the drm node to use for subsequent mmap call. */ | ||
__u64 offset; | ||
}; | ||
|
||
#endif /* _UAPI_VC4_DRM_H_ */ |