diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-17 11:26:17 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-17 11:26:17 -0500 |
| commit | 3c2e81ef344a90bb0a39d84af6878b4aeff568a2 (patch) | |
| tree | bd8c8b23466174899d2fe4d35af6e1e838edb068 /include/uapi | |
| parent | 221392c3ad0432e39fd74a349364f66cb0ed78f6 (diff) | |
| parent | 55bde6b1442fed8af67b92d21acce67db454c9f9 (diff) | |
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull DRM updates from Dave Airlie:
"This is the one and only next pull for 3.8, we had a regression we
found last week, so I was waiting for that to resolve itself, and I
ended up with some Intel fixes on top as well.
Highlights:
- new driver: nvidia tegra 20/30/hdmi support
- radeon: add support for previously unused DMA engines, more HDMI
regs, eviction speeds ups and fixes
- i915: HSW support enable, agp removal on GEN6, seqno wrapping
- exynos: IPP subsystem support (image post proc), HDMI
- nouveau: display class reworking, nv20->40 z compression
- ttm: start of locking fixes, rcu usage for lookups,
- core: documentation updates, docbook integration, monotonic clock
usage, move from connector to object properties"
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (590 commits)
drm/exynos: add gsc ipp driver
drm/exynos: add rotator ipp driver
drm/exynos: add fimc ipp driver
drm/exynos: add iommu support for ipp
drm/exynos: add ipp subsystem
drm/exynos: support device tree for fimd
radeon: fix regression with eviction since evict caching changes
drm/radeon: add more pedantic checks in the CP DMA checker
drm/radeon: bump version for CS ioctl support for async DMA
drm/radeon: enable the async DMA rings in the CS ioctl
drm/radeon: add VM CS parser support for async DMA on cayman/TN/SI
drm/radeon/kms: add evergreen/cayman CS parser for async DMA (v2)
drm/radeon/kms: add 6xx/7xx CS parser for async DMA (v2)
drm/radeon: fix htile buffer size computation for command stream checker
drm/radeon: fix fence locking in the pageflip callback
drm/radeon: make indirect register access concurrency-safe
drm/radeon: add W|RREG32_IDX for MM_INDEX|DATA based mmio accesss
drm/exynos: support extended screen coordinate of fimd
drm/exynos: fix x, y coordinates for right bottom pixel
drm/exynos: fix fb offset calculation for plane
...
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/drm/drm.h | 1 | ||||
| -rw-r--r-- | include/uapi/drm/exynos_drm.h | 203 | ||||
| -rw-r--r-- | include/uapi/drm/i915_drm.h | 6 | ||||
| -rw-r--r-- | include/uapi/drm/radeon_drm.h | 6 |
4 files changed, 214 insertions, 2 deletions
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index 1e3481edf062..8d1e2bbee83a 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h | |||
| @@ -778,6 +778,7 @@ struct drm_event_vblank { | |||
| 778 | #define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 | 778 | #define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 |
| 779 | #define DRM_CAP_DUMB_PREFER_SHADOW 0x4 | 779 | #define DRM_CAP_DUMB_PREFER_SHADOW 0x4 |
| 780 | #define DRM_CAP_PRIME 0x5 | 780 | #define DRM_CAP_PRIME 0x5 |
| 781 | #define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 | ||
| 781 | 782 | ||
| 782 | #define DRM_PRIME_CAP_IMPORT 0x1 | 783 | #define DRM_PRIME_CAP_IMPORT 0x1 |
| 783 | #define DRM_PRIME_CAP_EXPORT 0x2 | 784 | #define DRM_PRIME_CAP_EXPORT 0x2 |
diff --git a/include/uapi/drm/exynos_drm.h b/include/uapi/drm/exynos_drm.h index c0494d586e23..e7f52c334005 100644 --- a/include/uapi/drm/exynos_drm.h +++ b/include/uapi/drm/exynos_drm.h | |||
| @@ -133,17 +133,26 @@ struct drm_exynos_g2d_cmd { | |||
| 133 | __u32 data; | 133 | __u32 data; |
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | enum drm_exynos_g2d_buf_type { | ||
| 137 | G2D_BUF_USERPTR = 1 << 31, | ||
| 138 | }; | ||
| 139 | |||
| 136 | enum drm_exynos_g2d_event_type { | 140 | enum drm_exynos_g2d_event_type { |
| 137 | G2D_EVENT_NOT, | 141 | G2D_EVENT_NOT, |
| 138 | G2D_EVENT_NONSTOP, | 142 | G2D_EVENT_NONSTOP, |
| 139 | G2D_EVENT_STOP, /* not yet */ | 143 | G2D_EVENT_STOP, /* not yet */ |
| 140 | }; | 144 | }; |
| 141 | 145 | ||
| 146 | struct drm_exynos_g2d_userptr { | ||
| 147 | unsigned long userptr; | ||
| 148 | unsigned long size; | ||
| 149 | }; | ||
| 150 | |||
| 142 | struct drm_exynos_g2d_set_cmdlist { | 151 | struct drm_exynos_g2d_set_cmdlist { |
| 143 | __u64 cmd; | 152 | __u64 cmd; |
| 144 | __u64 cmd_gem; | 153 | __u64 cmd_buf; |
| 145 | __u32 cmd_nr; | 154 | __u32 cmd_nr; |
| 146 | __u32 cmd_gem_nr; | 155 | __u32 cmd_buf_nr; |
| 147 | 156 | ||
| 148 | /* for g2d event */ | 157 | /* for g2d event */ |
| 149 | __u64 event_type; | 158 | __u64 event_type; |
| @@ -154,6 +163,170 @@ struct drm_exynos_g2d_exec { | |||
| 154 | __u64 async; | 163 | __u64 async; |
| 155 | }; | 164 | }; |
| 156 | 165 | ||
| 166 | enum drm_exynos_ops_id { | ||
| 167 | EXYNOS_DRM_OPS_SRC, | ||
| 168 | EXYNOS_DRM_OPS_DST, | ||
| 169 | EXYNOS_DRM_OPS_MAX, | ||
| 170 | }; | ||
| 171 | |||
| 172 | struct drm_exynos_sz { | ||
| 173 | __u32 hsize; | ||
| 174 | __u32 vsize; | ||
| 175 | }; | ||
| 176 | |||
| 177 | struct drm_exynos_pos { | ||
| 178 | __u32 x; | ||
| 179 | __u32 y; | ||
| 180 | __u32 w; | ||
| 181 | __u32 h; | ||
| 182 | }; | ||
| 183 | |||
| 184 | enum drm_exynos_flip { | ||
| 185 | EXYNOS_DRM_FLIP_NONE = (0 << 0), | ||
| 186 | EXYNOS_DRM_FLIP_VERTICAL = (1 << 0), | ||
| 187 | EXYNOS_DRM_FLIP_HORIZONTAL = (1 << 1), | ||
| 188 | }; | ||
| 189 | |||
| 190 | enum drm_exynos_degree { | ||
| 191 | EXYNOS_DRM_DEGREE_0, | ||
| 192 | EXYNOS_DRM_DEGREE_90, | ||
| 193 | EXYNOS_DRM_DEGREE_180, | ||
| 194 | EXYNOS_DRM_DEGREE_270, | ||
| 195 | }; | ||
| 196 | |||
| 197 | enum drm_exynos_planer { | ||
| 198 | EXYNOS_DRM_PLANAR_Y, | ||
| 199 | EXYNOS_DRM_PLANAR_CB, | ||
| 200 | EXYNOS_DRM_PLANAR_CR, | ||
| 201 | EXYNOS_DRM_PLANAR_MAX, | ||
| 202 | }; | ||
| 203 | |||
| 204 | /** | ||
| 205 | * A structure for ipp supported property list. | ||
| 206 | * | ||
| 207 | * @version: version of this structure. | ||
| 208 | * @ipp_id: id of ipp driver. | ||
| 209 | * @count: count of ipp driver. | ||
| 210 | * @writeback: flag of writeback supporting. | ||
| 211 | * @flip: flag of flip supporting. | ||
| 212 | * @degree: flag of degree information. | ||
| 213 | * @csc: flag of csc supporting. | ||
| 214 | * @crop: flag of crop supporting. | ||
| 215 | * @scale: flag of scale supporting. | ||
| 216 | * @refresh_min: min hz of refresh. | ||
| 217 | * @refresh_max: max hz of refresh. | ||
| 218 | * @crop_min: crop min resolution. | ||
| 219 | * @crop_max: crop max resolution. | ||
| 220 | * @scale_min: scale min resolution. | ||
| 221 | * @scale_max: scale max resolution. | ||
| 222 | */ | ||
| 223 | struct drm_exynos_ipp_prop_list { | ||
| 224 | __u32 version; | ||
| 225 | __u32 ipp_id; | ||
| 226 | __u32 count; | ||
| 227 | __u32 writeback; | ||
| 228 | __u32 flip; | ||
| 229 | __u32 degree; | ||
| 230 | __u32 csc; | ||
| 231 | __u32 crop; | ||
| 232 | __u32 scale; | ||
| 233 | __u32 refresh_min; | ||
| 234 | __u32 refresh_max; | ||
| 235 | __u32 reserved; | ||
| 236 | struct drm_exynos_sz crop_min; | ||
| 237 | struct drm_exynos_sz crop_max; | ||
| 238 | struct drm_exynos_sz scale_min; | ||
| 239 | struct drm_exynos_sz scale_max; | ||
| 240 | }; | ||
| 241 | |||
| 242 | /** | ||
| 243 | * A structure for ipp config. | ||
| 244 | * | ||
| 245 | * @ops_id: property of operation directions. | ||
| 246 | * @flip: property of mirror, flip. | ||
| 247 | * @degree: property of rotation degree. | ||
| 248 | * @fmt: property of image format. | ||
| 249 | * @sz: property of image size. | ||
| 250 | * @pos: property of image position(src-cropped,dst-scaler). | ||
| 251 | */ | ||
| 252 | struct drm_exynos_ipp_config { | ||
| 253 | enum drm_exynos_ops_id ops_id; | ||
| 254 | enum drm_exynos_flip flip; | ||
| 255 | enum drm_exynos_degree degree; | ||
| 256 | __u32 fmt; | ||
| 257 | struct drm_exynos_sz sz; | ||
| 258 | struct drm_exynos_pos pos; | ||
| 259 | }; | ||
| 260 | |||
| 261 | enum drm_exynos_ipp_cmd { | ||
| 262 | IPP_CMD_NONE, | ||
| 263 | IPP_CMD_M2M, | ||
| 264 | IPP_CMD_WB, | ||
| 265 | IPP_CMD_OUTPUT, | ||
| 266 | IPP_CMD_MAX, | ||
| 267 | }; | ||
| 268 | |||
| 269 | /** | ||
| 270 | * A structure for ipp property. | ||
| 271 | * | ||
| 272 | * @config: source, destination config. | ||
| 273 | * @cmd: definition of command. | ||
| 274 | * @ipp_id: id of ipp driver. | ||
| 275 | * @prop_id: id of property. | ||
| 276 | * @refresh_rate: refresh rate. | ||
| 277 | */ | ||
| 278 | struct drm_exynos_ipp_property { | ||
| 279 | struct drm_exynos_ipp_config config[EXYNOS_DRM_OPS_MAX]; | ||
| 280 | enum drm_exynos_ipp_cmd cmd; | ||
| 281 | __u32 ipp_id; | ||
| 282 | __u32 prop_id; | ||
| 283 | __u32 refresh_rate; | ||
| 284 | }; | ||
| 285 | |||
| 286 | enum drm_exynos_ipp_buf_type { | ||
| 287 | IPP_BUF_ENQUEUE, | ||
| 288 | IPP_BUF_DEQUEUE, | ||
| 289 | }; | ||
| 290 | |||
| 291 | /** | ||
| 292 | * A structure for ipp buffer operations. | ||
| 293 | * | ||
| 294 | * @ops_id: operation directions. | ||
| 295 | * @buf_type: definition of buffer. | ||
