diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2007-08-22 12:03:10 +0000 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2007-08-22 12:03:10 +0000 |
commit | a827eb6bee28aae9c54b0426786eba72a57d62de (patch) | |
tree | 817a42508d438e02ca202c3b02f9e21a589d7cc0 | |
parent | b85afa73438e6f695138e894e4f8ae0f8d942de8 (diff) | |
download | fbtest-a827eb6bee28aae9c54b0426786eba72a57d62de.tar.gz |
- Add fb_pan()
- Disable FB_VMODE_YWRAP if it's enabled
-rw-r--r-- | fb.c | 26 | ||||
-rw-r--r-- | include/fb.h | 1 |
2 files changed, 26 insertions, 1 deletions
@@ -174,6 +174,28 @@ int fb_set_cmap(void) /* + * Pan the display + */ + +int fb_pan(u32 xoffset, u32 yoffset) +{ + struct fb_var_screeninfo var; + int error; + + Debug("fb_pan(%u, %u)\n", xoffset, yoffset); + fb_var.xoffset = xoffset; + fb_var.yoffset = yoffset; + var = fb_var; + error = ioctl(fb_fd, FBIOPAN_DISPLAY, &fb_var); + var_validate_change(&var, error); + if (error == -1) { + Fatal("ioctl FBIOPAN_DISPLAY: %s\n", strerror(errno)); + } + return 1; +} + + + /* * Map the frame buffer */ @@ -413,10 +435,12 @@ void fb_init(void) fb_open(); fb_get_var(); saved_var = fb_var; - if (fb_var.xoffset || fb_var.yoffset || fb_var.accel_flags) { + if (fb_var.xoffset || fb_var.yoffset || fb_var.accel_flags || + fb_var.vmode & FB_VMODE_YWRAP) { fb_var.xoffset = 0; fb_var.yoffset = 0; fb_var.accel_flags = 0; + fb_var.vmode &= ~FB_VMODE_YWRAP; fb_set_var(); } fb_get_fix(); diff --git a/include/fb.h b/include/fb.h index fcda308..1df4e48 100644 --- a/include/fb.h +++ b/include/fb.h @@ -25,6 +25,7 @@ extern int fb_get_var(void); extern int fb_set_var(void); extern int fb_get_cmap(void); extern int fb_set_cmap(void); +extern int fb_pan(u32 xoffset, u32 yoffset); extern void fb_map(void); extern void fb_unmap(void); |