diff options
| author | Kristian Høgsberg <krh@redhat.com> | 2008-07-31 15:18:32 -0400 | 
|---|---|---|
| committer | Kristian Høgsberg <krh@redhat.com> | 2008-07-31 15:18:32 -0400 | 
| commit | 5052e966ec7fe5146c2d73b90482003619add5da (patch) | |
| tree | a48e771871fd64a2892f5ce75e6e309b03db5e06 /linux-core/drmP.h | |
| parent | 6d4e147480a334d32fa59c7fde53e10d7ab6e106 (diff) | |
| parent | 95c02743c96ca9e959f68a6e942206bdfadae53a (diff) | |
Merge commit 'origin/master' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/ati_pcigart.c
	linux-core/drm_compat.h
	linux-core/drm_irq.c
	linux-core/drm_lock.c
	linux-core/i915_drv.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
	shared-core/nouveau_mem.c
	shared-core/radeon_cp.c
	shared-core/radeon_drv.h
Diffstat (limited to 'linux-core/drmP.h')
| -rw-r--r-- | linux-core/drmP.h | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/linux-core/drmP.h b/linux-core/drmP.h index e3a08e79..1e5838ee 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -962,6 +962,14 @@ struct drm_device {  	/** \name VBLANK IRQ support */  	/*@{ */ +	/* +	 * At load time, disabling the vblank interrupt won't be allowed since +	 * old clients may not call the modeset ioctl and therefore misbehave. +	 * Once the modeset ioctl *has* been called though, we can safely +	 * disable them when unused. +	 */ +	int vblank_disable_allowed; +  	wait_queue_head_t *vbl_queue;	/**< VBLANK wait queue */  	atomic_t *_vblank_count;	/**< number of VBLANK interrupts (driver must alloc the right number of counters) */  	spinlock_t vbl_lock; @@ -970,13 +978,12 @@ struct drm_device {  	atomic_t *vblank_refcount;	/* number of users of vblank interrupts per crtc */  	u32 *last_vblank;		/* protected by dev->vbl_lock, used */  					/* for wraparound handling */ -	u32 *vblank_offset;		/* used to track how many vblanks */  	int *vblank_enabled;		/* so we don't call enable more than  					   once per disable */ -	u32 *vblank_premodeset;		/*  were lost during modeset */ +	int *vblank_inmodeset;		/* Display driver is setting mode */  	struct timer_list vblank_disable_timer; -	unsigned long max_vblank_count; /**< size of vblank counter register */ +	u32 max_vblank_count;		/**< size of vblank counter register */  	spinlock_t tasklet_lock;	/**< For drm_locked_tasklet */  	void (*locked_tasklet_func)(struct drm_device *dev); @@ -1314,7 +1321,6 @@ extern int drm_wait_hotplug(struct drm_device *dev, void *data, struct drm_file  extern int drm_vblank_wait(struct drm_device * dev, unsigned int *vbl_seq);  extern void drm_locked_tasklet(struct drm_device *dev, void(*func)(struct drm_device*));  extern u32 drm_vblank_count(struct drm_device *dev, int crtc); -extern void drm_update_vblank_count(struct drm_device *dev, int crtc);  extern void drm_handle_vblank(struct drm_device *dev, int crtc);  extern void drm_handle_hotplug(struct drm_device *dev);  extern int drm_vblank_get(struct drm_device *dev, int crtc); @@ -1505,6 +1511,7 @@ void drm_gem_open(struct drm_device *dev, struct drm_file *file_private);  void drm_gem_release(struct drm_device *dev, struct drm_file *file_private);  extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev); +extern void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev);  extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev);  static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev, | 
