summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2013-04-30 19:56:47 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2013-04-30 19:56:47 +0000
commit7ea3da0e50669753497cc90cef8b4e56a676b2ae (patch)
tree4ee09f39a51afad8381974d3083da08d7d586912 /sys/dev/pci
parent5889bd8a0fbff1ab367d76f764add6f141bb3707 (diff)
Clear the right pixels when scrolling backwards.
Fixes issue reported by tedu@
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/drm/i915/i915_drv.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/pci/drm/i915/i915_drv.c b/sys/dev/pci/drm/i915/i915_drv.c
index 592d7077280..2b522e651d5 100644
--- a/sys/dev/pci/drm/i915/i915_drv.c
+++ b/sys/dev/pci/drm/i915/i915_drv.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_drv.c,v 1.22 2013/04/21 14:41:26 kettenis Exp $ */
+/* $OpenBSD: i915_drv.c,v 1.23 2013/04/30 19:56:46 kettenis Exp $ */
/*
* Copyright (c) 2008-2009 Owain G. Ainsworth <oga@openbsd.org>
*
@@ -764,10 +764,11 @@ inteldrm_copyrows(void *cookie, int src, int dst, int num)
struct inteldrm_softc *dev_priv = sc;
struct drm_fb_helper *helper = &dev_priv->fbdev->helper;
size_t size = dev_priv->fbdev->ifb.obj->base.size / 2;
+ int stride = ri->ri_font->fontheight * ri->ri_stride;
int i;
if (dst == 0) {
- int delta = src * ri->ri_font->fontheight * ri->ri_stride;
+ int delta = src * stride;
bzero(ri->ri_bits, delta);
sc->sc_offset += delta;
@@ -779,7 +780,8 @@ inteldrm_copyrows(void *cookie, int src, int dst, int num)
ri->ri_origbits -= size;
}
} else {
- int delta = dst * ri->ri_font->fontheight * ri->ri_stride;
+ int delta = dst * stride;
+ bzero(ri->ri_bits + num * stride, delta);
sc->sc_offset -= delta;
ri->ri_bits -= delta;
@@ -789,8 +791,6 @@ inteldrm_copyrows(void *cookie, int src, int dst, int num)
ri->ri_bits += size;
ri->ri_origbits += size;
}
-
- bzero(ri->ri_bits, delta);
}
for (i = 0; i < helper->crtc_count; i++) {