diff options
Diffstat (limited to 'drivers/gpu/drm/tiny/cirrus.c')
| -rw-r--r-- | drivers/gpu/drm/tiny/cirrus.c | 28 | 
1 files changed, 14 insertions, 14 deletions
| diff --git a/drivers/gpu/drm/tiny/cirrus.c b/drivers/gpu/drm/tiny/cirrus.c index 4611ec408506..c95d9ff7d600 100644 --- a/drivers/gpu/drm/tiny/cirrus.c +++ b/drivers/gpu/drm/tiny/cirrus.c @@ -16,7 +16,6 @@   * Copyright 1999-2001 Jeff Garzik <[email protected]>   */ -#include <linux/console.h>  #include <linux/dma-buf-map.h>  #include <linux/module.h>  #include <linux/pci.h> @@ -317,28 +316,28 @@ static int cirrus_fb_blit_rect(struct drm_framebuffer *fb, const struct dma_buf_  			       struct drm_rect *rect)  {  	struct cirrus_device *cirrus = to_cirrus(fb->dev); +	void __iomem *dst = cirrus->vram;  	void *vmap = map->vaddr; /* TODO: Use mapping abstraction properly */  	int idx;  	if (!drm_dev_enter(&cirrus->dev, &idx))  		return -ENODEV; -	if (cirrus->cpp == fb->format->cpp[0]) -		drm_fb_memcpy_dstclip(cirrus->vram, fb->pitches[0], -				      vmap, fb, rect); +	if (cirrus->cpp == fb->format->cpp[0]) { +		dst += drm_fb_clip_offset(fb->pitches[0], fb->format, rect); +		drm_fb_memcpy_toio(dst, fb->pitches[0], vmap, fb, rect); -	else if (fb->format->cpp[0] == 4 && cirrus->cpp == 2) -		drm_fb_xrgb8888_to_rgb565_dstclip(cirrus->vram, -						  cirrus->pitch, -						  vmap, fb, rect, false); +	} else if (fb->format->cpp[0] == 4 && cirrus->cpp == 2) { +		dst += drm_fb_clip_offset(cirrus->pitch, fb->format, rect); +		drm_fb_xrgb8888_to_rgb565_toio(dst, cirrus->pitch, vmap, fb, rect, false); -	else if (fb->format->cpp[0] == 4 && cirrus->cpp == 3) -		drm_fb_xrgb8888_to_rgb888_dstclip(cirrus->vram, -						  cirrus->pitch, -						  vmap, fb, rect); +	} else if (fb->format->cpp[0] == 4 && cirrus->cpp == 3) { +		dst += drm_fb_clip_offset(cirrus->pitch, fb->format, rect); +		drm_fb_xrgb8888_to_rgb888_toio(dst, cirrus->pitch, vmap, fb, rect); -	else +	} else {  		WARN_ON_ONCE("cpp mismatch"); +	}  	drm_dev_exit(idx); @@ -636,8 +635,9 @@ static struct pci_driver cirrus_pci_driver = {  static int __init cirrus_init(void)  { -	if (vgacon_text_force()) +	if (drm_firmware_drivers_only())  		return -EINVAL; +  	return pci_register_driver(&cirrus_pci_driver);  } |