Lines Matching defs:drm_device

970 struct drm_device {  struct
975 struct mtx count_lock; /**< For inuse, drm_device::open_count, drm_device::buf_use */ argument
976 struct sx dev_struct_lock; /**< For others */
981 int open_count; /**< Outstanding files open */
982 atomic_t ioctl_count; /**< Outstanding IOCTLs pending */
983 atomic_t vma_count; /**< Outstanding vma areas open */
984 int buf_use; /**< Buffers in use -- cannot alloc */
985 atomic_t buf_alloc; /**< Buffer allocation in progress */
990 unsigned long counters;
991 enum drm_stat_type types[15];
992 atomic_t counts[15];
1016 struct drm_device_dma *dma; /**< Optional pointer for DMA support */ argument
1021 int irq_enabled; /**< True if irq handler is enabled */
1022 atomic_t context_flag; /**< Context swapping flag */
1023 atomic_t interrupt_flag; /**< Interruption handler flag */
1024 atomic_t dma_flag; /**< DMA dispatch flag */
1025 wait_queue_head_t context_wait; /**< Processes waiting on ctx switch */
1026 int last_checked; /**< Last context checked for DMA */
1027 int last_context; /**< Last current context */
1028 unsigned long last_switch; /**< jiffies at last context switch */
1040 int vblank_disable_allowed;
1042 …_count; /**< number of VBLANK interrupts (driver must alloc the right number of counters) */
1043 …blank_time; /**< timestamp of current vblank_count (drivers must alloc right number of fields) */
1044 …tx vblank_time_lock; /**< Protects vblank count and time updates during vblank enable/disable */
1045 struct mtx vbl_lock;
1046 atomic_t *vblank_refcount; /* number of users of vblank interruptsper crtc */
1047 u32 *last_vblank; /* protected by dev->vbl_lock, used */
1049 int *vblank_enabled; /* so we don't call enable more than
1051 int *vblank_inmodeset; /* Display driver is setting mode */
1052 u32 *last_vblank_wait; /* Last vblank seqno waited per CRTC */
1053 struct callout vblank_disable_callout;
1055 u32 max_vblank_count; /**< size of vblank counter register */
1060 struct list_head vblank_event_list;
1061 struct mtx event_lock;
1065 struct drm_agp_head *agp; /**< AGP data */
1067 device_t dev; /* Device instance from newbus */
1068 uint16_t pci_device; /* PCI device id */
1069 uint16_t pci_vendor; /* PCI vendor id */
1070 uint16_t pci_subdevice; /* PCI subsystem device id */
1071 uint16_t pci_subvendor; /* PCI subsystem vendor id */
1073 struct drm_sg_mem *sg; /**< Scatter gather memory */
1074 unsigned int num_crtcs; /**< Number of CRTCs on this device */
1075 void *dev_private; /**< device private data */
1076 void *mm_private;
1077 struct drm_sigdata sigdata; /**< For block_all_signals */
1078 sigset_t sigmask;
1080 struct drm_driver *driver;
1081 struct drm_local_map *agp_buffer_map;
1082 unsigned int agp_buffer_token;
1083 struct drm_minor *control; /**< Control node for card */
1084 struct drm_minor *primary; /**< render type primary screen head */
1086 struct drm_mode_config mode_config; /**< Current mode config */
1090 struct sx object_name_lock;
1091 struct drm_gem_names object_names;
1093 int switch_power_state;
1095 atomic_t unplugged; /* device has been unplugged or gone away */
1098 struct mtx dma_lock; /* protects dev->dma */
1099 struct mtx irq_lock; /* protects irq condition checks */
1102 int irq; /* Interrupt used by board */
1103 int msi_enabled; /* MSI enabled */
1104 int irqrid; /* Interrupt used by board */
1105 struct resource *irqr; /* Resource for interrupt used by board */
1106 void *irqh; /* Handle from bus_setup_intr */
1110 struct resource *pcir[DRM_MAX_PCI_RESOURCE];
1111 int pcirid[DRM_MAX_PCI_RESOURCE];
1112 struct mtx pcir_lock;
1136 static __inline__ int drm_core_check_feature(struct drm_device *dev, in drm_core_check_feature() argument