Date: Mon, 15 Mar 2010 14:41:08 -0400 From: Jung-uk Kim <jkim@FreeBSD.org> To: freebsd-bugs@FreeBSD.org Cc: val <dummy@smtp.ru> Subject: Re: kern/144654: [vesa] VESA support broken on FreeBSD 8.0 Stable [regression] Message-ID: <201003151441.11928.jkim@FreeBSD.org> In-Reply-To: <201003151824.o2FIOlWm007852@freefall.freebsd.org> References: <201003151824.o2FIOlWm007852@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
I need little bit more information. Does it respond to ping when it
happens? Can you switch to other modes? Can you please try the
attached patch?
BTW, your VESA BIOS is reporting all modes are VGA compatible, which
is impossible.
Thanks,
Jung-uk Kim
[-- Attachment #2 --]
Index: sys/dev/fb/vesa.c
===================================================================
--- sys/dev/fb/vesa.c (revision 205172)
+++ sys/dev/fb/vesa.c (working copy)
@@ -1241,7 +1241,6 @@ vesa_set_mode(video_adapter_t *adp, int mode)
if ((vesa_adp_info->v_flags & V_DAC8) != 0 &&
(info.vi_flags & V_INFO_GRAPHICS) != 0 &&
- (info.vi_flags & V_INFO_NONVGA) != 0 &&
vesa_bios_set_dac(8) > 6)
adp->va_flags |= V_ADP_DAC8;
@@ -1322,8 +1321,7 @@ vesa_save_palette(video_adapter_t *adp, u_char *pa
{
int bits;
- if (adp == vesa_adp && VESA_MODE(adp->va_mode) &&
- (adp->va_info.vi_flags & V_INFO_NONVGA) != 0) {
+ if (adp == vesa_adp && VESA_MODE(adp->va_mode)) {
bits = (adp->va_flags & V_ADP_DAC8) != 0 ? 8 : 6;
return (vesa_bios_save_palette(0, 256, palette, bits));
}
@@ -1336,8 +1334,7 @@ vesa_load_palette(video_adapter_t *adp, u_char *pa
{
int bits;
- if (adp == vesa_adp && VESA_MODE(adp->va_mode) &&
- (adp->va_info.vi_flags & V_INFO_NONVGA) != 0) {
+ if (adp == vesa_adp && VESA_MODE(adp->va_mode)) {
bits = (adp->va_flags & V_ADP_DAC8) != 0 ? 8 : 6;
return (vesa_bios_load_palette(0, 256, palette, bits));
}
@@ -1544,8 +1541,6 @@ get_palette(video_adapter_t *adp, int base, int co
return (1);
if (!VESA_MODE(adp->va_mode))
return (1);
- if ((adp->va_info.vi_flags & V_INFO_NONVGA) == 0)
- return (1);
bits = (adp->va_flags & V_ADP_DAC8) != 0 ? 8 : 6;
r = malloc(count * 3, M_DEVBUF, M_WAITOK);
@@ -1582,8 +1577,6 @@ set_palette(video_adapter_t *adp, int base, int co
return (1);
if (!VESA_MODE(adp->va_mode))
return (1);
- if ((adp->va_info.vi_flags & V_INFO_NONVGA) == 0)
- return (1);
bits = (adp->va_flags & V_ADP_DAC8) != 0 ? 8 : 6;
r = malloc(count * 3, M_DEVBUF, M_WAITOK);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003151441.11928.jkim>
