Blame view
include/drm/exynos_drm.h
4.33 KB
1c248b7d2 DRM: add DRM Driv... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* exynos_drm.h * * Copyright (c) 2011 Samsung Electronics Co., Ltd. * Authors: * Inki Dae <inki.dae@samsung.com> * Joonyoung Shim <jy0922.shim@samsung.com> * Seung-Woo Kim <sw0312.kim@samsung.com> * * 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 * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS 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 _EXYNOS_DRM_H_ #define _EXYNOS_DRM_H_ /** * User-desired buffer creation information structure. * |
f088d5a9c drm/exynos: use g... |
35 |
* @size: user-desired memory allocation size. |
1c248b7d2 DRM: add DRM Driv... |
36 37 |
* - this size value would be page-aligned internally. * @flags: user request for setting memory type or cache attributes. |
f088d5a9c drm/exynos: use g... |
38 39 |
* @handle: returned a handle to created gem object. * - this handle will be set by gem module of kernel side. |
1c248b7d2 DRM: add DRM Driv... |
40 41 |
*/ struct drm_exynos_gem_create { |
f088d5a9c drm/exynos: use g... |
42 |
uint64_t size; |
1c248b7d2 DRM: add DRM Driv... |
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
unsigned int flags; unsigned int handle; }; /** * A structure for getting buffer offset. * * @handle: a pointer to gem object created. * @pad: just padding to be 64-bit aligned. * @offset: relatived offset value of the memory region allocated. * - this value should be set by user. */ struct drm_exynos_gem_map_off { unsigned int handle; unsigned int pad; uint64_t offset; }; /** * A structure for mapping buffer. * * @handle: a handle to gem object created. * @size: memory size to be mapped. * @mapped: having user virtual address mmaped. * - this variable would be filled by exynos gem module * of kernel side with user virtual address which is allocated * by do_mmap(). */ struct drm_exynos_gem_mmap { unsigned int handle; unsigned int size; uint64_t mapped; }; |
864ee9e6f drm/exynos: Add p... |
76 77 78 79 |
struct drm_exynos_plane_set_zpos { __u32 plane_id; __s32 zpos; }; |
1c248b7d2 DRM: add DRM Driv... |
80 81 82 |
#define DRM_EXYNOS_GEM_CREATE 0x00 #define DRM_EXYNOS_GEM_MAP_OFFSET 0x01 #define DRM_EXYNOS_GEM_MMAP 0x02 |
864ee9e6f drm/exynos: Add p... |
83 84 |
/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */ #define DRM_EXYNOS_PLANE_SET_ZPOS 0x06 |
1c248b7d2 DRM: add DRM Driv... |
85 86 87 88 89 90 91 92 93 |
#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \ DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create) #define DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + \ DRM_EXYNOS_GEM_MAP_OFFSET, struct drm_exynos_gem_map_off) #define DRM_IOCTL_EXYNOS_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + \ DRM_EXYNOS_GEM_MMAP, struct drm_exynos_gem_mmap) |
864ee9e6f drm/exynos: Add p... |
94 95 |
#define DRM_IOCTL_EXYNOS_PLANE_SET_ZPOS DRM_IOWR(DRM_COMMAND_BASE + \ DRM_EXYNOS_PLANE_SET_ZPOS, struct drm_exynos_plane_set_zpos) |
1c248b7d2 DRM: add DRM Driv... |
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
/** * Platform Specific Structure for DRM based FIMD. * * @timing: default video mode for initializing * @default_win: default window layer number to be used for UI. * @bpp: default bit per pixel. */ struct exynos_drm_fimd_pdata { struct fb_videomode timing; u32 vidcon0; u32 vidcon1; unsigned int default_win; unsigned int bpp; }; |
d84083268 drm/exynos: added... |
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
/** * Platform Specific Structure for DRM based HDMI. * * @hdmi_dev: device point to specific hdmi driver. * @mixer_dev: device point to specific mixer driver. * * this structure is used for common hdmi driver and each device object * would be used to access specific device driver(hdmi or mixer driver) */ struct exynos_drm_common_hdmi_pd { struct device *hdmi_dev; struct device *mixer_dev; }; /** * Platform Specific Structure for DRM based HDMI core. * * @timing: default video mode for initializing * @default_win: default window layer number to be used for UI. * @bpp: default bit per pixel. */ struct exynos_drm_hdmi_pdata { struct fb_videomode timing; unsigned int default_win; unsigned int bpp; }; |
1c248b7d2 DRM: add DRM Driv... |
136 |
#endif |