XenevaOS
Loading...
Searching...
No Matches
drm_device.h
Go to the documentation of this file.
1#ifndef _DRM_DEVICE_H_
2#define _DRM_DEVICE_H_
3
4#include <linux/list.h>
5#include <linux/kref.h>
6#ifdef CONFIG_TRANSPARENT_HUGEPAGE
7#include <linux/mount.h>
8#endif
9#include <linux/mutex.h>
10#include <linux/idr.h>
11#include <linux/sched.h>
12
13#include <drm/drm_mode_config.h>
14
15struct drm_driver;
16struct drm_minor;
17struct drm_master;
18struct drm_vblank_crtc;
20struct drm_vram_mm;
21struct drm_fb_helper;
22
23struct inode;
24
25struct pci_dev;
26struct pci_controller;
27
28/*
29 * Recovery methods for wedged device in order of less to more side-effects.
30 * To be used with drm_dev_wedged_event() as recovery @method. Callers can
31 * use any one, multiple (or'd) or none depending on their needs.
32 *
33 * Refer to "Device Wedging" chapter in Documentation/gpu/drm-uapi.rst for more
34 * details.
35 */
36#define DRM_WEDGE_RECOVERY_NONE BIT(0) /* optional telemetry collection */
37#define DRM_WEDGE_RECOVERY_REBIND BIT(1) /* unbind + bind driver */
38#define DRM_WEDGE_RECOVERY_BUS_RESET BIT(2) /* unbind + reset bus device + bind */
39#define DRM_WEDGE_RECOVERY_VENDOR BIT(3) /* vendor specific recovery method */
40
50
68
75struct drm_device {
78
80 struct kref ref;
81
83 struct device *dev;
84
106
113 struct {
115 struct list_head resources;
121
123 const struct drm_driver *driver;
124
136
146
155
158
165
173
174#ifdef CONFIG_TRANSPARENT_HUGEPAGE
183 struct vfsmount *huge_mnt;
184#endif
185
195
203
206
208 char *unique;
209
216
224
233
241
248
255
263
279
289
301
324
327
335
337 unsigned int num_crtcs;
338
341
344
347
350
353
363
371
377 struct dentry *debugfs_root;
378
385};
386
387void drm_dev_set_dma_dev(struct drm_device *dev, struct device *dma_dev);
388
399static inline struct device *drm_dev_dma_dev(struct drm_device *dev)
400{
401 if (dev->dma_dev)
402 return dev->dma_dev;
403 return dev->dev;
404}
405
406#endif
int pid_t
Definition types.h:59
void drm_dev_set_dma_dev(struct drm_device *dev, struct device *dma_dev)
switch_power_state
Definition drm_device.h:55
@ DRM_SWITCH_POWER_DYNAMIC_OFF
Definition drm_device.h:66
@ DRM_SWITCH_POWER_ON
Definition drm_device.h:57
@ DRM_SWITCH_POWER_CHANGING
Definition drm_device.h:63
@ DRM_SWITCH_POWER_OFF
Definition drm_device.h:60
const struct device * dev
Definition drm_print.h:519
int spinlock_t
Definition kernel.h:44
uint32_t u32
Definition kernel.h:16
@ TASK_COMM_LEN
Definition sched.h:118
Definition atomic.h:31
Definition fs.h:255
Definition drm_device.h:75
struct list_head client_sysrq_list
Definition drm_device.h:262
u32 driver_features
Definition drm_device.h:194
const struct drm_driver * driver
Definition drm_device.h:123
struct mutex filelist_mutex
Definition drm_device.h:226
struct list_head filelist
Definition drm_device.h:232
struct drm_vram_mm * vram_mm
Definition drm_device.h:352
struct inode * anon_inode
Definition drm_device.h:205
struct list_head filelist_internal
Definition drm_device.h:240
struct drm_master * master
Definition drm_device.h:172
struct drm_vblank_crtc * vblank
Definition drm_device.h:288
struct dentry * debugfs_root
Definition drm_device.h:377
struct drm_fb_helper * fb_helper
Definition drm_device.h:370
atomic_t open_count
Definition drm_device.h:223
struct mutex master_mutex
Definition drm_device.h:215
struct mutex clientlist_mutex
Definition drm_device.h:247
struct drm_mode_config mode_config
Definition drm_device.h:340
void * final_kfree
Definition drm_device.h:117
spinlock_t vblank_time_lock
Definition drm_device.h:295
spinlock_t event_lock
Definition drm_device.h:334
struct mutex gem_lru_mutex
Definition drm_device.h:384
void * dev_private
Definition drm_device.h:135
struct list_head vblank_event_list
Definition drm_device.h:326
spinlock_t lock
Definition drm_device.h:119
struct idr object_name_idr
Definition drm_device.h:346
spinlock_t vbl_lock
Definition drm_device.h:300
struct device * dev
Definition drm_device.h:83
char * unique
Definition drm_device.h:208
bool registered
Definition drm_device.h:164
bool unplugged
Definition drm_device.h:202
struct drm_minor * accel
Definition drm_device.h:157
bool vblank_disable_immediate
Definition drm_device.h:278
struct mutex object_name_lock
Definition drm_device.h:343
struct list_head clientlist
Definition drm_device.h:254
unsigned int num_crtcs
Definition drm_device.h:337
enum switch_power_state switch_power_state
Definition drm_device.h:362
struct drm_minor * render
Definition drm_device.h:154
struct device * dma_dev
Definition drm_device.h:105
struct kref ref
Definition drm_device.h:80
struct drm_minor * primary
Definition drm_device.h:145
u32 max_vblank_count
Definition drm_device.h:323
struct drm_vma_offset_manager * vma_offset_manager
Definition drm_device.h:349
int if_version
Definition drm_device.h:77
struct drm_device::@18 managed
Definition drm_drv.h:199
Definition drm_fb_helper.h:132
Definition drm_auth.h:47
Definition drm_file.h:78
Definition drm_mode_config.h:360
Definition drm_vblank.h:139
Definition drm_vma_manager.h:59
Definition drm_gem_vram_helper.h:164
Definition drm_device.h:44
char comm[TASK_COMM_LEN]
Definition drm_device.h:48
pid_t pid
Definition drm_device.h:46
Definition idr.h:80
Definition fs.h:183
Definition kref.h:44
Definition list.h:11
Definition mutex.h:59
Definition pci.h:102
Definition mount.h:53