/
usr
/
src
/
linux-headers-5.15.0-181
/
include
/
drm
/
/usr/src/linux-headers-5.15.0-181/include/drm
mkdir
upload
Name
Size
Mode
Actions
bridge/
-
0755
rm
i2c/
-
0755
rm
ttm/
-
0755
rm
amd_asic_type.h
2199
0644
edit
dl
rm
drm_aperture.h
1160
0644
edit
dl
rm
drm_atomic.h
42646
0644
edit
dl
rm
drm_atomic_helper.h
9488
0644
edit
dl
rm
drm_atomic_state_helper.h
4307
0644
edit
dl
rm
drm_atomic_uapi.h
2218
0644
edit
dl
rm
drm_audio_component.h
3879
0644
edit
dl
rm
drm_auth.h
4754
0644
edit
dl
rm
drm_blend.h
2407
0644
edit
dl
rm
drm_bridge.h
34359
0644
edit
dl
rm
drm_bridge_connector.h
548
0644
edit
dl
rm
drm_cache.h
3082
0644
edit
dl
rm
drm_client.h
5056
0644
edit
dl
rm
drm_color_mgmt.h
3910
0644
edit
dl
rm
drm_connector.h
57270
0644
edit
dl
rm
drm_crtc.h
45550
0644
edit
dl
rm
drm_crtc_helper.h
2448
0644
edit
dl
rm
drm_damage_helper.h
3408
0644
edit
dl
rm
drm_debugfs.h
3486
0644
edit
dl
rm
drm_debugfs_crc.h
2723
0644
edit
dl
rm
drm_device.h
8727
0644
edit
dl
rm
drm_displayid.h
3399
0644
edit
dl
rm
drm_dp_aux_bus.h
1740
0644
edit
dl
rm
drm_dp_dual_mode_helper.h
4731
0644
edit
dl
rm
drm_dp_helper.h
89773
0644
edit
dl
rm
drm_dp_mst_helper.h
28721
0644
edit
dl
rm
drm_drv.h
19117
0644
edit
dl
rm
drm_dsc.h
16682
0644
edit
dl
rm
drm_edid.h
17644
0644
edit
dl
rm
drm_encoder.h
10891
0644
edit
dl
rm
drm_encoder_slave.h
6590
0644
edit
dl
rm
drm_fb_cma_helper.h
575
0644
edit
dl
rm
drm_fb_helper.h
13008
0644
edit
dl
rm
drm_file.h
12518
0644
edit
dl
rm
drm_fixed.h
4826
0644
edit
dl
rm
drm_flip_work.h
3080
0644
edit
dl
rm
drm_format_helper.h
1522
0644
edit
dl
rm
drm_fourcc.h
9933
0644
edit
dl
rm
drm_framebuffer.h
10649
0644
edit
dl
rm
drm_gem.h
12082
0644
edit
dl
rm
drm_gem_atomic_helper.h
4718
0644
edit
dl
rm
drm_gem_cma_helper.h
6998
0644
edit
dl
rm
drm_gem_framebuffer_helper.h
2105
0644
edit
dl
rm
drm_gem_shmem_helper.h
8497
0644
edit
dl
rm
drm_gem_ttm_helper.h
861
0644
edit
dl
rm
drm_gem_vram_helper.h
6313
0644
edit
dl
rm
drm_hashtab.h
3083
0644
edit
dl
rm
drm_hdcp.h
9006
0644
edit
dl
rm
drm_ioctl.h
6381
0644
edit
dl
rm
drm_lease.h
1010
0644
edit
dl
rm
drm_legacy.h
9479
0644
edit
dl
rm
drm_managed.h
3426
0644
edit
dl
rm
drm_mipi_dbi.h
4834
0644
edit
dl
rm
drm_mipi_dsi.h
11553
0644
edit
dl
rm
drm_mm.h
17924
0644
edit
dl
rm
drm_modes.h
18616
0644
edit
dl
rm
drm_modeset_helper.h
1814
0644
edit
dl
rm
drm_modeset_helper_vtables.h
57322
0644
edit
dl
rm
drm_modeset_lock.h
6964
0644
edit
dl
rm
drm_mode_config.h
33017
0644
edit
dl
rm
drm_mode_object.h
5294
0644
edit
dl
rm
drm_of.h
4205
0644
edit
dl
rm
drm_panel.h
6408
0644
edit
dl
rm
drm_pciids.h
68070
0644
edit
dl
rm
drm_plane.h
29161
0644
edit
dl
rm
drm_plane_helper.h
1787
0644
edit
dl
rm
drm_prime.h
4168
0644
edit
dl
rm
drm_print.h
18139
0644
edit
dl
rm
drm_probe_helper.h
922
0644
edit
dl
rm
drm_property.h
12042
0644
edit
dl
rm
drm_rect.h
7022
0644
edit
dl
rm
drm_scdc_helper.h
4445
0644
edit
dl
rm
drm_self_refresh_helper.h
594
0644
edit
dl
rm
drm_simple_kms_helper.h
9119
0644
edit
dl
rm
drm_syncobj.h
3943
0644
edit
dl
rm
drm_sysfs.h
442
0644
edit
dl
rm
drm_util.h
2642
0644
edit
dl
rm
drm_utils.h
504
0644
edit
dl
rm
drm_vblank.h
9255
0644
edit
dl
rm
drm_vblank_work.h
1956
0644
edit
dl
rm
drm_vma_manager.h
8343
0644
edit
dl
rm
drm_writeback.h
4150
0644
edit
dl
rm
gma_drm.h
413
0644
edit
dl
rm
gpu_scheduler.h
15814
0644
edit
dl
rm
gud.h
11856
0644
edit
dl
rm
i915_component.h
1805
0644
edit
dl
rm
i915_drm.h
3690
0644
edit
dl
rm
i915_mei_hdcp_interface.h
5899
0644
edit
dl
rm
i915_pciids.h
21821
0644
edit
dl
rm
intel-gtt.h
996
0644
edit
dl
rm
intel_lpe_audio.h
1758
0644
edit
dl
rm
spsc_queue.h
3157
0644
edit
dl
rm
task_barrier.h
3020
0644
edit
dl
rm
Edit:
/usr/src/linux-headers-5.15.0-181/include/drm/drm_device.h
(8727B)
#ifndef _DRM_DEVICE_H_ #define _DRM_DEVICE_H_ #include <linux/list.h> #include <linux/kref.h> #include <linux/mutex.h> #include <linux/idr.h> #include <drm/drm_hashtab.h> #include <drm/drm_mode_config.h> struct drm_driver; struct drm_minor; struct drm_master; struct drm_device_dma; struct drm_vblank_crtc; struct drm_sg_mem; struct drm_local_map; struct drm_vma_offset_manager; struct drm_vram_mm; struct drm_fb_helper; struct inode; struct pci_dev; struct pci_controller; /** * enum switch_power_state - power state of drm device */ enum switch_power_state { /** @DRM_SWITCH_POWER_ON: Power state is ON */ DRM_SWITCH_POWER_ON = 0, /** @DRM_SWITCH_POWER_OFF: Power state is OFF */ DRM_SWITCH_POWER_OFF = 1, /** @DRM_SWITCH_POWER_CHANGING: Power state is changing */ DRM_SWITCH_POWER_CHANGING = 2, /** @DRM_SWITCH_POWER_DYNAMIC_OFF: Suspended */ DRM_SWITCH_POWER_DYNAMIC_OFF = 3, }; /** * struct drm_device - DRM device structure * * This structure represent a complete card that * may contain multiple heads. */ struct drm_device { /** @if_version: Highest interface version set */ int if_version; /** @ref: Object ref-count */ struct kref ref; /** @dev: Device structure of bus-device */ struct device *dev; /** * @managed: * * Managed resources linked to the lifetime of this &drm_device as * tracked by @ref. */ struct { /** @managed.resources: managed resources list */ struct list_head resources; /** @managed.final_kfree: pointer for final kfree() call */ void *final_kfree; /** @managed.lock: protects @managed.resources */ spinlock_t lock; } managed; /** @driver: DRM driver managing the device */ const struct drm_driver *driver; /** * @dev_private: * * DRM driver private data. This is deprecated and should be left set to * NULL. * * Instead of using this pointer it is recommended that drivers use * devm_drm_dev_alloc() and embed struct &drm_device in their larger * per-device structure. */ void *dev_private; /** @primary: Primary node */ struct drm_minor *primary; /** @render: Render node */ struct drm_minor *render; /** * @registered: * * Internally used by drm_dev_register() and drm_connector_register(). */ bool registered; /** * @master: * * Currently active master for this device. * Protected by &master_mutex */ struct drm_master *master; /** * @driver_features: per-device driver features * * Drivers can clear specific flags here to disallow * certain features on a per-device basis while still * sharing a single &struct drm_driver instance across * all devices. */ u32 driver_features; /** * @unplugged: * * Flag to tell if the device has been unplugged. * See drm_dev_enter() and drm_dev_is_unplugged(). */ bool unplugged; /** @anon_inode: inode for private address-space */ struct inode *anon_inode; /** @unique: Unique name of the device */ char *unique; /** * @struct_mutex: * * Lock for others (not &drm_minor.master and &drm_file.is_master) * * WARNING: * Only drivers annotated with DRIVER_LEGACY should be using this. */ struct mutex struct_mutex; /** * @master_mutex: * * Lock for &drm_minor.master and &drm_file.is_master */ struct mutex master_mutex; /** * @open_count: * * Usage counter for outstanding files open, * protected by drm_global_mutex */ atomic_t open_count; /** @filelist_mutex: Protects @filelist. */ struct mutex filelist_mutex; /** * @filelist: * * List of userspace clients, linked through &drm_file.lhead. */ struct list_head filelist; /** * @filelist_internal: * * List of open DRM files for in-kernel clients. * Protected by &filelist_mutex. */ struct list_head filelist_internal; /** * @clientlist_mutex: * * Protects &clientlist access. */ struct mutex clientlist_mutex; /** * @clientlist: * * List of in-kernel clients. Protected by &clientlist_mutex. */ struct list_head clientlist; /** * @vblank_disable_immediate: * * If true, vblank interrupt will be disabled immediately when the * refcount drops to zero, as opposed to via the vblank disable * timer. * * This can be set to true it the hardware has a working vblank counter * with high-precision timestamping (otherwise there are races) and the * driver uses drm_crtc_vblank_on() and drm_crtc_vblank_off() * appropriately. See also @max_vblank_count and * &drm_crtc_funcs.get_vblank_counter. */ bool vblank_disable_immediate; /** * @vblank: * * Array of vblank tracking structures, one per &struct drm_crtc. For * historical reasons (vblank support predates kernel modesetting) this * is free-standing and not part of &struct drm_crtc itself. It must be * initialized explicitly by calling drm_vblank_init(). */ struct drm_vblank_crtc *vblank; /** * @vblank_time_lock: * * Protects vblank count and time updates during vblank enable/disable */ spinlock_t vblank_time_lock; /** * @vbl_lock: Top-level vblank references lock, wraps the low-level * @vblank_time_lock. */ spinlock_t vbl_lock; /** * @max_vblank_count: * * Maximum value of the vblank registers. This value +1 will result in a * wrap-around of the vblank register. It is used by the vblank core to * handle wrap-arounds. * * If set to zero the vblank core will try to guess the elapsed vblanks * between times when the vblank interrupt is disabled through * high-precision timestamps. That approach is suffering from small * races and imprecision over longer time periods, hence exposing a * hardware vblank counter is always recommended. * * This is the statically configured device wide maximum. The driver * can instead choose to use a runtime configurable per-crtc value * &drm_vblank_crtc.max_vblank_count, in which case @max_vblank_count * must be left at zero. See drm_crtc_set_max_vblank_count() on how * to use the per-crtc value. * * If non-zero, &drm_crtc_funcs.get_vblank_counter must be set. */ u32 max_vblank_count; /** @vblank_event_list: List of vblank events */ struct list_head vblank_event_list; /** * @event_lock: * * Protects @vblank_event_list and event delivery in * general. See drm_send_event() and drm_send_event_locked(). */ spinlock_t event_lock; /** @num_crtcs: Number of CRTCs on this device */ unsigned int num_crtcs; /** @mode_config: Current mode config */ struct drm_mode_config mode_config; /** @object_name_lock: GEM information */ struct mutex object_name_lock; /** @object_name_idr: GEM information */ struct idr object_name_idr; /** @vma_offset_manager: GEM information */ struct drm_vma_offset_manager *vma_offset_manager; /** @vram_mm: VRAM MM memory manager */ struct drm_vram_mm *vram_mm; /** * @switch_power_state: * * Power state of the client. * Used by drivers supporting the switcheroo driver. * The state is maintained in the * &vga_switcheroo_client_ops.set_gpu_state callback */ enum switch_power_state switch_power_state; /** * @fb_helper: * * Pointer to the fbdev emulation structure. * Set by drm_fb_helper_init() and cleared by drm_fb_helper_fini(). */ struct drm_fb_helper *fb_helper; /* Everything below here is for legacy driver, never use! */ /* private: */ #if IS_ENABLED(CONFIG_DRM_LEGACY) /* List of devices per driver for stealth attach cleanup */ struct list_head legacy_dev_list; #ifdef __alpha__ /** @hose: PCI hose, only used on ALPHA platforms. */ struct pci_controller *hose; #endif /* AGP data */ struct drm_agp_head *agp; /* Context handle management - linked list of context handles */ struct list_head ctxlist; /* Context handle management - mutex for &ctxlist */ struct mutex ctxlist_mutex; /* Context handle management */ struct idr ctx_idr; /* Memory management - linked list of regions */ struct list_head maplist; /* Memory management - user token hash table for maps */ struct drm_open_hash map_hash; /* Context handle management - list of vmas (for debugging) */ struct list_head vmalist; /* Optional pointer for DMA support */ struct drm_device_dma *dma; /* Context swapping flag */ __volatile__ long context_flag; /* Last current context */ int last_context; /* Lock for &buf_use and a few other things. */ spinlock_t buf_lock; /* Usage counter for buffers in use -- cannot alloc */ int buf_use; /* Buffer allocation in progress */ atomic_t buf_alloc; struct { int context; struct drm_hw_lock *lock; } sigdata; struct drm_local_map *agp_buffer_map; unsigned int agp_buffer_token; /* Scatter gather memory */ struct drm_sg_mem *sg; /* IRQs */ bool irq_enabled; int irq; #endif }; #endif
Save
cmd:
run