Module Name: xsrc
Committed By: tsutsui
Date: Tue Nov 3 15:25:21 UTC 2020
Modified Files:
xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k: x68kFb.c
Log Message:
Restore video mode properly on exit even on CRT Mode 19 (640x480 31kHz VGA).
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kFb.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kFb.c
diff -u xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kFb.c:1.4 xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kFb.c:1.5
--- xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kFb.c:1.4 Sat Aug 1 20:09:03 2020
+++ xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kFb.c Tue Nov 3 15:25:21 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: x68kFb.c,v 1.4 2020/08/01 20:09:03 tsutsui Exp $ */
+/* $NetBSD: x68kFb.c,v 1.5 2020/11/03 15:25:21 tsutsui Exp $ */
/*-------------------------------------------------------------------------
* Copyright (c) 1996 Yasushi Yamasaki
* All rights reserved.
@@ -30,6 +30,8 @@ static void x68kRegSetup(X68kScreenRec *
DevPrivateKeyRec x68kScreenPrivateKeyRec;
+static int cons_dwidth;
+
/*-------------------------------------------------------------------------
* function "x68kFbCommonOpen"
*
@@ -68,6 +70,7 @@ x68kFbCommonOpen(X68kScreenRec *pPriv, c
pPriv->fb = (uint8_t *)((uint32_t)pPriv->reg + gi.gd_regsize);
x68kRegSetup( pPriv );
+ cons_dwidth = gi.gd_dwidth;
return TRUE;
}
@@ -83,7 +86,8 @@ x68kFbCommonOpen(X68kScreenRec *pPriv, c
void
x68kFbCommonClose(X68kScreenRec *pPriv)
{
- X68kFbReg graphNone = {
+ static const X68kFbReg graphNone_mode16 = {
+ /* CRT mode 16 (768x512 31.5kHz) */
{ 137,14, 28, 124,
567, 5, 40, 552,
27, 0, 0, 0,
@@ -93,8 +97,19 @@ x68kFbCommonClose(X68kScreenRec *pPriv)
{ 0x0004, 0x21e4, 0x0020 },
0
};
+ static const X68kFbReg graphNone_mode19 = {
+ /* CRT mode 19 (640x480 31.5kHz VGA mode) */
+ { 99,11, 13, 93,
+ 524, 1, 33, 513,
+ 27, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0x0417, 0, 0, 0, 0 },
+ { 0x0004, 0x21e4, 0x0020 },
+ 0
+ };
/* change video mode */
- pPriv->x68kreg = graphNone;
+ pPriv->x68kreg = (cons_dwidth == 640) ? graphNone_mode19 : graphNone_mode16;
x68kRegSetup(pPriv);
/* unmap and close frame buffer */