summaryrefslogtreecommitdiff
path: root/hw/kdrive/fbdev
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2004-06-28 00:48:51 +0000
committerKeith Packard <keithp@keithp.com>2004-06-28 00:48:51 +0000
commit7ff67f2872ddd15908f789ec9bdb76e8211d6431 (patch)
tree04caafc996ec21117517e3db247e3b1f1944322b /hw/kdrive/fbdev
parent5b75aae2cf1ad38556e9a55da72ad65419aa7f84 (diff)
Separate out off-screen allocation from Init. Fix Enable to update
off-screen addresses. Wrap RandR to update off-screen addresses. Set off_screen_base and memory_size fields correctly.
Diffstat (limited to 'hw/kdrive/fbdev')
-rw-r--r--hw/kdrive/fbdev/fbdev.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c
index d904a4aa1..44a95d19e 100644
--- a/hw/kdrive/fbdev/fbdev.c
+++ b/hw/kdrive/fbdev/fbdev.c
@@ -333,14 +333,14 @@ fbdevMapFramebuffer (KdScreenInfo *screen)
screen->width = priv->var.xres;
screen->height = priv->var.yres;
screen->memory_base = (CARD8 *) (priv->fb);
- screen->memory_size = 0;
- screen->off_screen_base = 0;
+ screen->memory_size = priv->fix.smem_len;
if (scrpriv->shadow)
{
if (!KdShadowFbAlloc (screen, 0,
scrpriv->randr & (RR_Rotate_90|RR_Rotate_270)))
return FALSE;
+ screen->off_screen_base = screen->memory_size;
}
else
{
@@ -348,6 +348,7 @@ fbdevMapFramebuffer (KdScreenInfo *screen)
screen->fb[0].pixelStride = (priv->fix.line_length * 8 /
priv->var.bits_per_pixel);
screen->fb[0].frameBuffer = (CARD8 *) (priv->fb);
+ screen->off_screen_base = screen->fb[0].byteStride * screen->height;
}
return TRUE;