aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drmP.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/drm/drmP.h')
-rw-r--r--include/drm/drmP.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index fad21c927a38..2d94d7413d71 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -85,6 +85,9 @@ struct module;
85struct drm_file; 85struct drm_file;
86struct drm_device; 86struct drm_device;
87 87
88struct device_node;
89struct videomode;
90
88#include <drm/drm_os_linux.h> 91#include <drm/drm_os_linux.h>
89#include <drm/drm_hashtab.h> 92#include <drm/drm_hashtab.h>
90#include <drm/drm_mm.h> 93#include <drm/drm_mm.h>
@@ -446,7 +449,15 @@ struct drm_file {
446 int is_master; /* this file private is a master for a minor */ 449 int is_master; /* this file private is a master for a minor */
447 struct drm_master *master; /* master this node is currently associated with 450 struct drm_master *master; /* master this node is currently associated with
448 N.B. not always minor->master */ 451 N.B. not always minor->master */
452
453 /**
454 * fbs - List of framebuffers associated with this file.
455 *
456 * Protected by fbs_lock. Note that the fbs list holds a reference on
457 * the fb object to prevent it from untimely disappearing.
458 */
449 struct list_head fbs; 459 struct list_head fbs;
460 struct mutex fbs_lock;
450 461
451 wait_queue_head_t event_wait; 462 wait_queue_head_t event_wait;
452 struct list_head event_list; 463 struct list_head event_list;
@@ -919,6 +930,14 @@ struct drm_driver {
919 /* import dmabuf -> GEM */ 930 /* import dmabuf -> GEM */
920 struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev, 931 struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev,
921 struct dma_buf *dma_buf); 932 struct dma_buf *dma_buf);
933 /* low-level interface used by drm_gem_prime_{import,export} */
934 int (*gem_prime_pin)(struct drm_gem_object *obj);
935 struct sg_table *(*gem_prime_get_sg_table)(struct drm_gem_object *obj);
936 struct drm_gem_object *(*gem_prime_import_sg_table)(
937 struct drm_device *dev, size_t size,
938 struct sg_table *sgt);
939 void *(*gem_prime_vmap)(struct drm_gem_object *obj);
940 void (*gem_prime_vunmap)(struct drm_gem_object *obj, void *vaddr);
922 941
923 /* vga arb irq handler */ 942 /* vga arb irq handler */
924 void (*vgaarb_irq)(struct drm_device *dev, bool state); 943 void (*vgaarb_irq)(struct drm_device *dev, bool state);
@@ -1276,6 +1295,11 @@ static inline int drm_device_is_unplugged(struct drm_device *dev)
1276 return ret; 1295 return ret;
1277} 1296}
1278 1297
1298static inline bool drm_modeset_is_locked(struct drm_device *dev)
1299{
1300 return mutex_is_locked(&dev->mode_config.mutex);
1301}
1302
1279/******************************************************************/ 1303/******************************************************************/
1280/** \name Internal function definitions */ 1304/** \name Internal function definitions */
1281/*@{*/ 1305/*@{*/
@@ -1456,6 +1480,12 @@ extern struct drm_display_mode *
1456drm_mode_create_from_cmdline_mode(struct drm_device *dev, 1480drm_mode_create_from_cmdline_mode(struct drm_device *dev,
1457 struct drm_cmdline_mode *cmd); 1481 struct drm_cmdline_mode *cmd);
1458 1482
1483extern int drm_display_mode_from_videomode(const struct videomode *vm,
1484 struct drm_display_mode *dmode);
1485extern int of_get_drm_display_mode(struct device_node *np,
1486 struct drm_display_mode *dmode,
1487 int index);
1488
1459/* Modesetting support */ 1489/* Modesetting support */
1460extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc); 1490extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc);
1461extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc); 1491extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc);
@@ -1540,9 +1570,13 @@ extern int drm_clients_info(struct seq_file *m, void* data);
1540extern int drm_gem_name_info(struct seq_file *m, void *data); 1570extern int drm_gem_name_info(struct seq_file *m, void *data);
1541 1571
1542 1572
1573extern struct dma_buf *drm_gem_prime_export(struct drm_device *dev,
1574 struct drm_gem_object *obj, int flags);
1543extern int drm_gem_prime_handle_to_fd(struct drm_device *dev, 1575extern int drm_gem_prime_handle_to_fd(struct drm_device *dev,
1544 struct drm_file *file_priv, uint32_t handle, uint32_t flags, 1576 struct drm_file *file_priv, uint32_t handle, uint32_t flags,
1545 int *prime_fd); 1577 int *prime_fd);
1578extern struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
1579 struct dma_buf *dma_buf);
1546extern int drm_gem_prime_fd_to_handle(struct drm_device *dev, 1580extern int drm_gem_prime_fd_to_handle(struct drm_device *dev,
1547 struct drm_file *file_priv, int prime_fd, uint32_t *handle); 1581 struct drm_file *file_priv, int prime_fd, uint32_t *handle);
1548 1582