From owner-freebsd-bugs@FreeBSD.ORG Mon Mar 15 18:41:25 2010 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 1C202106566B; Mon, 15 Mar 2010 18:41:25 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: freebsd-bugs@FreeBSD.org Date: Mon, 15 Mar 2010 14:41:08 -0400 User-Agent: KMail/1.6.2 References: <201003151824.o2FIOlWm007852@freefall.freebsd.org> In-Reply-To: <201003151824.o2FIOlWm007852@freefall.freebsd.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_H9nnLoTZt6Bc0Hm" Message-Id: <201003151441.11928.jkim@FreeBSD.org> Cc: val Subject: Re: kern/144654: [vesa] VESA support broken on FreeBSD 8.0 Stable [regression] X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Mar 2010 18:41:25 -0000 --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--