Skip site navigation (1)Skip section navigation (2)
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

--Boundary-00=_H9nnLoTZt6Bc0Hm
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

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

--Boundary-00=_H9nnLoTZt6Bc0Hm
Content-Type: text/plain;
  charset="iso-8859-1";
  name="vesa.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="vesa.diff"

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);

--Boundary-00=_H9nnLoTZt6Bc0Hm--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003151441.11928.jkim>