diff options
| -rw-r--r-- | drivers/char/drm/drm_vm.c | 3 | ||||
| -rw-r--r-- | drivers/char/drm/mga_drv.h | 2 | ||||
| -rw-r--r-- | drivers/char/drm/mga_state.c | 2 | 
3 files changed, 4 insertions, 3 deletions
diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c index ced4215e2275..39ea96e42c5b 100644 --- a/drivers/char/drm/drm_vm.c +++ b/drivers/char/drm/drm_vm.c @@ -148,7 +148,8 @@ static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma,  	offset	 = address - vma->vm_start;  	i = (unsigned long)map->handle + offset; -	page = vmalloc_to_page((void *)i); +	page = (map->type == _DRM_CONSISTENT) ? +		virt_to_page((void *)i) : vmalloc_to_page((void *)i);  	if (!page)  		return NOPAGE_OOM;  	get_page(page); diff --git a/drivers/char/drm/mga_drv.h b/drivers/char/drm/mga_drv.h index b22fdbd4f830..6059c5a5b105 100644 --- a/drivers/char/drm/mga_drv.h +++ b/drivers/char/drm/mga_drv.h @@ -227,7 +227,7 @@ static inline u32 _MGA_READ(u32 *addr)  #define MGA_EMIT_STATE( dev_priv, dirty )				\  do {									\  	if ( (dirty) & ~MGA_UPLOAD_CLIPRECTS ) {			\ -		if ( dev_priv->chipset == MGA_CARD_TYPE_G400 ) {	\ +		if ( dev_priv->chipset >= MGA_CARD_TYPE_G400 ) {	\  			mga_g400_emit_state( dev_priv );		\  		} else {						\  			mga_g200_emit_state( dev_priv );		\ diff --git a/drivers/char/drm/mga_state.c b/drivers/char/drm/mga_state.c index 05bbb4719376..6ac5e006226f 100644 --- a/drivers/char/drm/mga_state.c +++ b/drivers/char/drm/mga_state.c @@ -53,7 +53,7 @@ static void mga_emit_clip_rect( drm_mga_private_t *dev_priv,  	/* Force reset of DWGCTL on G400 (eliminates clip disable bit).  	 */ -	if (dev_priv->chipset == MGA_CARD_TYPE_G400) { +	if (dev_priv->chipset >= MGA_CARD_TYPE_G400) {  		DMA_BLOCK(MGA_DWGCTL, ctx->dwgctl,  			  MGA_LEN + MGA_EXEC, 0x80000000,  			  MGA_DWGCTL, ctx->dwgctl,  | 
