aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-07 20:36:12 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-07 20:36:12 -0400
commita7d7a143d0b4cb1914705884ca5c25e322dba693 (patch)
tree0ee5e9e43f0863b38a29e8abc293e80eab177d74 /include
parent43c40df2c7fedce640a6c39fcdf58764f6bbac5c (diff)
parent7963e9db1b1f842fdc53309baa8714d38e9f5681 (diff)
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull DRM updates from Dave Airlie: "Like all good pull reqs this ends with a revert, so it must mean we tested it, [ Ed. That's _one_ way of looking at it ] This pull is missing nouveau, Ben has been stuck trying to track down a very longstanding bug that revealed itself due to some other changes. I've asked him to send you a direct pull request for nouveau once he cleans things up. I'm away until Monday so don't want to delay things, you can make a decision on that when he sends it, I have my phone so I can ack things just not really merge much. It has one trivial conflict with your tree in armada_drv.c, and also the pull request contains some component changes that are already in your tree, the base tree from Russell went via Greg's tree already, but some stuff still shows up in here that doesn't when I merge my tree into yours. Otherwise all pretty standard graphics fare, one new driver and changes all over the place. New drivers: - sti kms driver for STMicroelectronics chipsets stih416 and stih407. core: - lots of cleanups to the drm core - DP MST helper code merged - universal cursor planes. - render nodes enabled by default panel: - better panel interfaces - new panel support - non-continuous cock advertising ability ttm: - shrinker fixes i915: - hopefully ditched UMS support - runtime pm fixes - psr tracking and locking - now enabled by default - userptr fixes - backlight brightness fixes - MST support merged - runtime PM for dpms - primary planes locking fixes - gen8 hw semaphore support - fbc fixes - runtime PM on SOix sleep state hw. - mmio base page flipping - lots of vlv/chv fixes. - universal cursor planes radeon: - Hawaii fixes - display scalar support for non-fixed mode displays - new firmware format support - dpm on more asics by default - GPUVM improvements - uncached and wc GTT buffers - BOs > visible VRAM exynos: - i80 interface support - module auto-loading - ipp driver consolidated. armada: - irq handling in crtc layer only - crtc renumbering - add component support - DT interaction changes. tegra: - load as module fixes - eDP bpp and sync polarity fixed - DSI non-continuous clock mode support - better support for importing buffers from nouveau msm: - mdp5/adq8084 v1.3 hw enablement - devicetree clk changse - ifc6410 board working tda998x: - component support - DT documentation update vmwgfx: - fix compat shader namespace" * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (551 commits) Revert "drm: drop redundant drm_file->is_master" drm/panel: simple: Use devm_gpiod_get_optional() drm/dsi: Replace upcasting macro by function drm/panel: ld9040: Replace upcasting macro by function drm/exynos: dp: Modify driver to support drm_panel drm/exynos: Move DP setup into commit() drm/panel: simple: Add AUO B133HTN01 panel support drm/panel: simple: Support delays in panel functions drm/panel: simple: Add proper definition for prepare and unprepare drm/panel: s6e8aa0: Add proper definition for prepare and unprepare drm/panel: ld9040: Add proper definition for prepare and unprepare drm/tegra: Add support for panel prepare and unprepare routines drm/exynos: dsi: Add support for panel prepare and unprepare routines drm/exynos: dpi: Add support for panel prepare and unprepare routines drm/panel: simple: Add dummy prepare and unprepare routines drm/panel: s6e8aa0: Add dummy prepare and unprepare routines drm/panel: ld9040: Add dummy prepare and unprepare routines drm/panel: Provide convenience wrapper for .get_modes() drm/panel: add .prepare() and .unprepare() functions drm/panel: simple: Remove simple-panel compatible ...
Diffstat (limited to 'include')
-rw-r--r--include/drm/drmP.h89
-rw-r--r--include/drm/drm_crtc.h36
-rw-r--r--include/drm/drm_dp_mst_helper.h509
-rw-r--r--include/drm/drm_fb_helper.h8
-rw-r--r--include/drm/drm_mipi_dsi.h21
-rw-r--r--include/drm/drm_of.h18
-rw-r--r--include/drm/drm_panel.h58
-rw-r--r--include/drm/drm_rect.h6
-rw-r--r--include/drm/ttm/ttm_bo_driver.h14
-rw-r--r--include/linux/host1x.h15
-rw-r--r--include/uapi/drm/drm.h2
-rw-r--r--include/uapi/drm/drm_mode.h5
-rw-r--r--include/uapi/drm/radeon_drm.h4
-rw-r--r--include/uapi/drm/tegra_drm.h46
-rw-r--r--include/video/samsung_fimd.h3
15 files changed, 730 insertions, 104 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index e41f17ea1f13..196890735367 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -152,8 +152,6 @@ int drm_err(const char *func, const char *format, ...);
152 also include looping detection. */ 152 also include looping detection. */
153 153
154#define DRM_MAGIC_HASH_ORDER 4 /**< Size of key hash table. Must be power of 2. */ 154#define DRM_MAGIC_HASH_ORDER 4 /**< Size of key hash table. Must be power of 2. */
155#define DRM_KERNEL_CONTEXT 0 /**< Change drm_resctx if changed */
156#define DRM_RESERVED_CONTEXTS 1 /**< Change drm_resctx if changed */
157 155
158#define DRM_MAP_HASH_OFFSET 0x10000000 156#define DRM_MAP_HASH_OFFSET 0x10000000
159 157
@@ -347,18 +345,6 @@ struct drm_waitlist {
347 spinlock_t write_lock; 345 spinlock_t write_lock;
348}; 346};
349 347
350struct drm_freelist {
351 int initialized; /**< Freelist in use */
352 atomic_t count; /**< Number of free buffers */
353 struct drm_buf *next; /**< End pointer */
354
355 wait_queue_head_t waiting; /**< Processes waiting on free bufs */
356 int low_mark; /**< Low water mark */
357 int high_mark; /**< High water mark */
358 atomic_t wfh; /**< If waiting for high mark */
359 spinlock_t lock;
360};
361
362typedef struct drm_dma_handle { 348typedef struct drm_dma_handle {
363 dma_addr_t busaddr; 349 dma_addr_t busaddr;
364 void *vaddr; 350 void *vaddr;
@@ -376,7 +362,8 @@ struct drm_buf_entry {
376 int page_order; 362 int page_order;
377 struct drm_dma_handle **seglist; 363 struct drm_dma_handle **seglist;
378 364
379 struct drm_freelist freelist; 365 int low_mark; /**< Low water mark */
366 int high_mark; /**< High water mark */
380}; 367};
381 368
382/* Event queued up for userspace to read */ 369/* Event queued up for userspace to read */
@@ -397,7 +384,6 @@ struct drm_prime_file_private {
397 384
398/** File private data */ 385/** File private data */
399struct drm_file { 386struct drm_file {
400 unsigned always_authenticated :1;
401 unsigned authenticated :1; 387 unsigned authenticated :1;
402 /* Whether we're master for a minor. Protected by master_mutex */ 388 /* Whether we're master for a minor. Protected by master_mutex */
403 unsigned is_master :1; 389 unsigned is_master :1;
@@ -442,23 +428,6 @@ struct drm_file {
442 struct drm_prime_file_private prime; 428 struct drm_prime_file_private prime;
443}; 429};
444 430
445/** Wait queue */
446struct drm_queue {
447 atomic_t use_count; /**< Outstanding uses (+1) */
448 atomic_t finalization; /**< Finalization in progress */
449 atomic_t block_count; /**< Count of processes waiting */
450 atomic_t block_read; /**< Queue blocked for reads */
451 wait_queue_head_t read_queue; /**< Processes waiting on block_read */
452 atomic_t block_write; /**< Queue blocked for writes */
453 wait_queue_head_t write_queue; /**< Processes waiting on block_write */
454 atomic_t total_queued; /**< Total queued statistic */
455 atomic_t total_flushed; /**< Total flushes statistic */
456 atomic_t total_locks; /**< Total locks statistics */
457 enum drm_ctx_flags flags; /**< Context preserving and 2D-only */
458 struct drm_waitlist waitlist; /**< Pending buffers */
459 wait_queue_head_t flush_queue; /**< Processes waiting until flush */
460};
461
462/** 431/**
463 * Lock data. 432 * Lock data.
464 */ 433 */
@@ -567,15 +536,6 @@ struct drm_map_list {
567 struct drm_master *master; 536 struct drm_master *master;
568}; 537};
569 538
570/**
571 * Context handle list
572 */
573struct drm_ctx_list {
574 struct list_head head; /**< list head */
575 drm_context_t handle; /**< context handle */
576 struct drm_file *tag; /**< associated fd private data */
577};
578
579/* location of GART table */ 539/* location of GART table */
580#define DRM_ATI_GART_MAIN 1 540#define DRM_ATI_GART_MAIN 1
581#define DRM_ATI_GART_FB 2 541#define DRM_ATI_GART_FB 2
@@ -1218,7 +1178,6 @@ extern bool drm_ioctl_flags(unsigned int nr, unsigned int *flags);
1218 /* Device support (drm_fops.h) */ 1178 /* Device support (drm_fops.h) */
1219extern struct mutex drm_global_mutex; 1179extern struct mutex drm_global_mutex;
1220extern int drm_open(struct inode *inode, struct file *filp); 1180extern int drm_open(struct inode *inode, struct file *filp);
1221extern int drm_stub_open(struct inode *inode, struct file *filp);
1222extern ssize_t drm_read(struct file *filp, char __user *buffer, 1181extern ssize_t drm_read(struct file *filp, char __user *buffer,
1223 size_t count, loff_t *offset); 1182 size_t count, loff_t *offset);
1224extern int drm_release(struct inode *inode, struct file *filp); 1183extern int drm_release(struct inode *inode, struct file *filp);
@@ -1256,29 +1215,6 @@ extern int drm_setversion(struct drm_device *dev, void *data,
1256extern int drm_noop(struct drm_device *dev, void *data, 1215extern int drm_noop(struct drm_device *dev, void *data,
1257 struct drm_file *file_priv); 1216 struct drm_file *file_priv);
1258 1217
1259 /* Context IOCTL support (drm_context.h) */
1260extern int drm_resctx(struct drm_device *dev, void *data,
1261 struct drm_file *file_priv);
1262extern int drm_addctx(struct drm_device *dev, void *data,
1263 struct drm_file *file_priv);
1264extern int drm_getctx(struct drm_device *dev, void *data,
1265 struct drm_file *file_priv);
1266extern int drm_switchctx(struct drm_device *dev, void *data,
1267 struct drm_file *file_priv);
1268extern int drm_newctx(struct drm_device *dev, void *data,
1269 struct drm_file *file_priv);
1270extern int drm_rmctx(struct drm_device *dev, void *data,
1271 struct drm_file *file_priv);
1272
1273extern int drm_ctxbitmap_init(struct drm_device *dev);
1274extern void drm_ctxbitmap_cleanup(struct drm_device *dev);
1275extern void drm_ctxbitmap_free(struct drm_device *dev, int ctx_handle);
1276
1277extern int drm_setsareactx(struct drm_device *dev, void *data,
1278 struct drm_file *file_priv);
1279extern int drm_getsareactx(struct drm_device *dev, void *data,
1280 struct drm_file *file_priv);
1281
1282 /* Authentication IOCTL support (drm_auth.h) */ 1218 /* Authentication IOCTL support (drm_auth.h) */
1283extern int drm_getmagic(struct drm_device *dev, void *data, 1219extern int drm_getmagic(struct drm_device *dev, void *data,
1284 struct drm_file *file_priv); 1220 struct drm_file *file_priv);
@@ -1398,17 +1334,12 @@ extern void drm_master_put(struct drm_master **master);
1398extern void drm_put_dev(struct drm_device *dev); 1334extern void drm_put_dev(struct drm_device *dev);
1399extern void drm_unplug_dev(struct drm_device *dev); 1335extern void drm_unplug_dev(struct drm_device *dev);
1400extern unsigned int drm_debug; 1336extern unsigned int drm_debug;
1401extern unsigned int drm_rnodes;
1402extern unsigned int drm_universal_planes;
1403 1337
1404extern unsigned int drm_vblank_offdelay; 1338extern unsigned int drm_vblank_offdelay;
1405extern unsigned int drm_timestamp_precision; 1339extern unsigned int drm_timestamp_precision;
1406extern unsigned int drm_timestamp_monotonic; 1340extern unsigned int drm_timestamp_mo