diff options
Diffstat (limited to 'include/drm/drmP.h')
-rw-r--r-- | include/drm/drmP.h | 34 |
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; | |||
85 | struct drm_file; | 85 | struct drm_file; |
86 | struct drm_device; | 86 | struct drm_device; |
87 | 87 | ||
88 | struct device_node; | ||
89 | struct 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 | ||
1298 | static 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 * | |||
1456 | drm_mode_create_from_cmdline_mode(struct drm_device *dev, | 1480 | drm_mode_create_from_cmdline_mode(struct drm_device *dev, |
1457 | struct drm_cmdline_mode *cmd); | 1481 | struct drm_cmdline_mode *cmd); |
1458 | 1482 | ||
1483 | extern int drm_display_mode_from_videomode(const struct videomode *vm, | ||
1484 | struct drm_display_mode *dmode); | ||
1485 | extern 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 */ |
1460 | extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc); | 1490 | extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc); |
1461 | extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc); | 1491 | extern 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); | |||
1540 | extern int drm_gem_name_info(struct seq_file *m, void *data); | 1570 | extern int drm_gem_name_info(struct seq_file *m, void *data); |
1541 | 1571 | ||
1542 | 1572 | ||
1573 | extern struct dma_buf *drm_gem_prime_export(struct drm_device *dev, | ||
1574 | struct drm_gem_object *obj, int flags); | ||
1543 | extern int drm_gem_prime_handle_to_fd(struct drm_device *dev, | 1575 | extern 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); |
1578 | extern struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev, | ||
1579 | struct dma_buf *dma_buf); | ||
1546 | extern int drm_gem_prime_fd_to_handle(struct drm_device *dev, | 1580 | extern 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 | ||