summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/vesa.c
diff options
context:
space:
mode:
authoryokota <yokota@FreeBSD.org>1999-09-02 08:08:49 +0000
committeryokota <yokota@FreeBSD.org>1999-09-02 08:08:49 +0000
commit6246c32f6a4bb5fa495a77c35725faf142401154 (patch)
tree66c54e6d426ed73dbdc12ee6b54ada0a6c324486 /sys/i386/isa/vesa.c
parent51b2052fbc9f994c249f7ab140206d88fafdea6b (diff)
downloadFreeBSD-src-6246c32f6a4bb5fa495a77c35725faf142401154.zip
FreeBSD-src-6246c32f6a4bb5fa495a77c35725faf142401154.tar.gz
Do not call the VESA BIOS if the current video mode is not one of
the VESA modes.
Diffstat (limited to 'sys/i386/isa/vesa.c')
-rw-r--r--sys/i386/isa/vesa.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/i386/isa/vesa.c b/sys/i386/isa/vesa.c
index 1015471..a209251 100644
--- a/sys/i386/isa/vesa.c
+++ b/sys/i386/isa/vesa.c
@@ -1397,9 +1397,13 @@ vesa_ioctl(video_adapter_t *adp, u_long cmd, caddr_t arg)
switch (cmd) {
case FBIO_SETWINORG: /* set frame buffer window origin */
+ if (!VESA_MODE(adp->va_mode))
+ return (*prevvidsw->ioctl)(adp, cmd, arg);
return (vesa_set_origin(adp, *(off_t *)arg) ? ENODEV : 0);
case FBIO_SETDISPSTART: /* set display start address */
+ if (!VESA_MODE(adp->va_mode))
+ return (*prevvidsw->ioctl)(adp, cmd, arg);
if (vesa_bios_set_start(((video_display_start_t *)arg)->x,
((video_display_start_t *)arg)->y))
return ENODEV;
@@ -1408,6 +1412,8 @@ vesa_ioctl(video_adapter_t *adp, u_long cmd, caddr_t arg)
return 0;
case FBIO_SETLINEWIDTH: /* set line length in pixel */
+ if (!VESA_MODE(adp->va_mode))
+ return (*prevvidsw->ioctl)(adp, cmd, arg);
if (vesa_bios_set_line_length(*(u_int *)arg, &bytes, NULL))
return ENODEV;
adp->va_line_width = bytes;
OpenPOWER on IntegriCloud