Deleted Added
full compact
vga_isa.c (43105) vga_isa.c (43664)
1/*-
2 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
3 * Copyright (c) 1992-1998 S�ren Schmidt
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 12 unchanged lines hidden (view full) ---

21 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 *
1/*-
2 * Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
3 * Copyright (c) 1992-1998 S�ren Schmidt
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 12 unchanged lines hidden (view full) ---

21 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 *
29 * $Id: vga_isa.c,v 1.1 1999/01/09 02:44:41 yokota Exp $
29 * $Id: vga_isa.c,v 1.1 1999/01/23 16:53:30 dfr Exp $
30 */
31
32#include "vga.h"
33#include "opt_vga.h"
34#include "opt_fb.h"
35#include "opt_syscons.h" /* should be removed in the future, XXX */
36
37#if NVGA > 0

--- 193 unchanged lines hidden (view full) ---

231 /* attach a virtual frame buffer device */
232 error = fb_attach(makedev(0, ISAVGA_MKMINOR(unit)), scp->adp,
233 &vga_cdevsw);
234 if (error)
235 return error;
236#endif /* FB_INSTALL_CDEV */
237
238 if (bootverbose)
30 */
31
32#include "vga.h"
33#include "opt_vga.h"
34#include "opt_fb.h"
35#include "opt_syscons.h" /* should be removed in the future, XXX */
36
37#if NVGA > 0

--- 193 unchanged lines hidden (view full) ---

231 /* attach a virtual frame buffer device */
232 error = fb_attach(makedev(0, ISAVGA_MKMINOR(unit)), scp->adp,
233 &vga_cdevsw);
234 if (error)
235 return error;
236#endif /* FB_INSTALL_CDEV */
237
238 if (bootverbose)
239 (*sw->diag)(sc->adp, bootverbose);
239 (*vidsw[sc->adp->va_index]->diag)(sc->adp, bootverbose);
240
241 return 0;
242}
243
244/* LOW-LEVEL */
245
246#include <machine/clock.h>
247#include <machine/pc/vesa.h>

--- 47 unchanged lines hidden (view full) ---

295 * NOTE: `va_window' should have a virtual address, but is initialized
296 * with a physical address in the following table, as verify_adapter()
297 * will perform address conversion at run-time.
298 */
299static video_adapter_t adapter_init_value[] = {
300 /* DCC_MONO */
301 { 0, KD_MONO, "mda", 0, 0, 0, IO_MDA, IO_MDASIZE, MONO_CRTC,
302 MDA_BUF_BASE, MDA_BUF_SIZE, MDA_BUF_BASE, MDA_BUF_SIZE, MDA_BUF_SIZE,
240
241 return 0;
242}
243
244/* LOW-LEVEL */
245
246#include <machine/clock.h>
247#include <machine/pc/vesa.h>

--- 47 unchanged lines hidden (view full) ---

295 * NOTE: `va_window' should have a virtual address, but is initialized
296 * with a physical address in the following table, as verify_adapter()
297 * will perform address conversion at run-time.
298 */
299static video_adapter_t adapter_init_value[] = {
300 /* DCC_MONO */
301 { 0, KD_MONO, "mda", 0, 0, 0, IO_MDA, IO_MDASIZE, MONO_CRTC,
302 MDA_BUF_BASE, MDA_BUF_SIZE, MDA_BUF_BASE, MDA_BUF_SIZE, MDA_BUF_SIZE,
303 0, 0, 0, 7, 0, 0, NULL },
303 0, 0, 0, 7, 0, },
304 /* DCC_CGA40 */
305 { 0, KD_CGA, "cga", 0, 0, V_ADP_COLOR, IO_CGA, IO_CGASIZE, COLOR_CRTC,
306 CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
304 /* DCC_CGA40 */
305 { 0, KD_CGA, "cga", 0, 0, V_ADP_COLOR, IO_CGA, IO_CGASIZE, COLOR_CRTC,
306 CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
307 0, 0, 0, 3, 0, 0, NULL },
307 0, 0, 0, 3, 0, },
308 /* DCC_CGA80 */
309 { 0, KD_CGA, "cga", 0, 0, V_ADP_COLOR, IO_CGA, IO_CGASIZE, COLOR_CRTC,
310 CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
308 /* DCC_CGA80 */
309 { 0, KD_CGA, "cga", 0, 0, V_ADP_COLOR, IO_CGA, IO_CGASIZE, COLOR_CRTC,
310 CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
311 0, 0, 0, 3, 0, 0, NULL },
311 0, 0, 0, 3, 0, },
312 /* DCC_EGAMONO */
313 { 0, KD_EGA, "ega", 0, 0, 0, IO_MDA, 48, MONO_CRTC,
314 EGA_BUF_BASE, EGA_BUF_SIZE, MDA_BUF_BASE, MDA_BUF_SIZE, MDA_BUF_SIZE,
312 /* DCC_EGAMONO */
313 { 0, KD_EGA, "ega", 0, 0, 0, IO_MDA, 48, MONO_CRTC,
314 EGA_BUF_BASE, EGA_BUF_SIZE, MDA_BUF_BASE, MDA_BUF_SIZE, MDA_BUF_SIZE,
315 0, 0, 0, 7, 0, 0, NULL },
315 0, 0, 0, 7, 0, },
316 /* DCC_EGA40 */
317 { 0, KD_EGA, "ega", 0, 0, V_ADP_COLOR, IO_MDA, 48, COLOR_CRTC,
318 EGA_BUF_BASE, EGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
316 /* DCC_EGA40 */
317 { 0, KD_EGA, "ega", 0, 0, V_ADP_COLOR, IO_MDA, 48, COLOR_CRTC,
318 EGA_BUF_BASE, EGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
319 0, 0, 0, 3, 0, 0, NULL },
319 0, 0, 0, 3, 0, },
320 /* DCC_EGA80 */
321 { 0, KD_EGA, "ega", 0, 0, V_ADP_COLOR, IO_MDA, 48, COLOR_CRTC,
322 EGA_BUF_BASE, EGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
320 /* DCC_EGA80 */
321 { 0, KD_EGA, "ega", 0, 0, V_ADP_COLOR, IO_MDA, 48, COLOR_CRTC,
322 EGA_BUF_BASE, EGA_BUF_SIZE, CGA_BUF_BASE, CGA_BUF_SIZE, CGA_BUF_SIZE,
323 0, 0, 0, 3, 0, 0, NULL },
323 0, 0, 0, 3, 0, },
324};
325
326static video_adapter_t biosadapter[2];
327static int biosadapters = 0;
328
329/* video driver declarations */
330static int vga_configure(int flags);
331 int (*vga_sub_configure)(int flags);

--- 153 unchanged lines hidden (view full) ---

485#endif
486static int map_gen_mode_num(int type, int color, int mode);
487static int map_bios_mode_num(int type, int color, int bios_mode);
488static u_char *get_mode_param(int mode);
489#ifndef VGA_NO_BIOS
490static void fill_adapter_param(int code, video_adapter_t *adp);
491#endif
492static int verify_adapter(video_adapter_t *adp);
324};
325
326static video_adapter_t biosadapter[2];
327static int biosadapters = 0;
328
329/* video driver declarations */
330static int vga_configure(int flags);
331 int (*vga_sub_configure)(int flags);

--- 153 unchanged lines hidden (view full) ---

485#endif
486static int map_gen_mode_num(int type, int color, int mode);
487static int map_bios_mode_num(int type, int color, int bios_mode);
488static u_char *get_mode_param(int mode);
489#ifndef VGA_NO_BIOS
490static void fill_adapter_param(int code, video_adapter_t *adp);
491#endif
492static int verify_adapter(video_adapter_t *adp);
493static void update_adapter_info(video_adapter_t *adp, video_info_t *info);
493#if !defined(VGA_NO_BIOS) && !defined(VGA_NO_MODE_CHANGE)
494#define COMP_IDENTICAL 0
495#define COMP_SIMILAR 1
496#define COMP_DIFFERENT 2
497static int comp_adpregs(u_char *buf1, u_char *buf2);
498#endif
499static int probe_adapters(void);
500

--- 326 unchanged lines hidden (view full) ---

827 video_mode_ptr2 = (u_char *)BIOS_PADDRTOVADDR(p);
828#endif
829 break;
830 }
831
832 return 0;
833}
834
494#if !defined(VGA_NO_BIOS) && !defined(VGA_NO_MODE_CHANGE)
495#define COMP_IDENTICAL 0
496#define COMP_SIMILAR 1
497#define COMP_DIFFERENT 2
498static int comp_adpregs(u_char *buf1, u_char *buf2);
499#endif
500static int probe_adapters(void);
501

--- 326 unchanged lines hidden (view full) ---

828 video_mode_ptr2 = (u_char *)BIOS_PADDRTOVADDR(p);
829#endif
830 break;
831 }
832
833 return 0;
834}
835
836static void
837update_adapter_info(video_adapter_t *adp, video_info_t *info)
838{
839 adp->va_flags &= ~V_ADP_COLOR;
840 adp->va_flags |=
841 (info->vi_flags & V_INFO_COLOR) ? V_ADP_COLOR : 0;
842 adp->va_crtc_addr =
843 (adp->va_flags & V_ADP_COLOR) ? COLOR_CRTC : MONO_CRTC;
844 adp->va_window = BIOS_PADDRTOVADDR(info->vi_window);
845 adp->va_window_size = info->vi_window_size;
846 adp->va_window_gran = info->vi_window_gran;
847 if (info->vi_buffer_size == 0) {
848 adp->va_buffer = 0;
849 adp->va_buffer_size = 0;
850 } else {
851 adp->va_buffer = BIOS_PADDRTOVADDR(info->vi_buffer);
852 adp->va_buffer_size = info->vi_buffer_size;
853 }
854 if (info->vi_flags & V_INFO_GRAPHICS)
855 adp->va_line_width = info->vi_width/8;
856 else
857 adp->va_line_width = info->vi_width;
858 bcopy(info, &adp->va_info, sizeof(adp->va_info));
859}
860
835#if !defined(VGA_NO_BIOS) && !defined(VGA_NO_MODE_CHANGE)
836/* compare two parameter table entries */
837static int
838comp_adpregs(u_char *buf1, u_char *buf2)
839{
840 static struct {
841 u_char mask;
842 } params[V_MODE_PARAM_SIZE] = {

--- 129 unchanged lines hidden (view full) ---

972 biosadapter[V_ADP_PRIMARY].va_flags & V_ADP_COLOR,
973 biosadapter[V_ADP_PRIMARY].va_initial_bios_mode);
974 } else {
975 biosadapter[V_ADP_PRIMARY] = biosadapter[V_ADP_SECONDARY];
976 biosadapter[V_ADP_SECONDARY].va_type = -1;
977 }
978 if (biosadapters == 0)
979 return biosadapters;
861#if !defined(VGA_NO_BIOS) && !defined(VGA_NO_MODE_CHANGE)
862/* compare two parameter table entries */
863static int
864comp_adpregs(u_char *buf1, u_char *buf2)
865{
866 static struct {
867 u_char mask;
868 } params[V_MODE_PARAM_SIZE] = {

--- 129 unchanged lines hidden (view full) ---

998 biosadapter[V_ADP_PRIMARY].va_flags & V_ADP_COLOR,
999 biosadapter[V_ADP_PRIMARY].va_initial_bios_mode);
1000 } else {
1001 biosadapter[V_ADP_PRIMARY] = biosadapter[V_ADP_SECONDARY];
1002 biosadapter[V_ADP_SECONDARY].va_type = -1;
1003 }
1004 if (biosadapters == 0)
1005 return biosadapters;
980#if 0
981 biosadapter[V_ADP_PRIMARY].va_index = V_ADP_PRIMARY;
982 biosadapter[V_ADP_SECONDARY].va_index = V_ADP_SECONDARY;
983#endif
984 biosadapter[V_ADP_PRIMARY].va_unit = V_ADP_PRIMARY;
985 biosadapter[V_ADP_SECONDARY].va_unit = V_ADP_SECONDARY;
986
987#if 0 /* we don't need these... */
988 fb_init_struct(&biosadapter[V_ADP_PRIMARY], ...);
989 fb_init_struct(&biosadapter[V_ADP_SECONDARY], ...);
990#endif
991

--- 148 unchanged lines hidden (view full) ---

1140 biosadapter[i].va_io_size = 32;
1141 }
1142 }
1143 }
1144
1145 /* buffer address */
1146 vga_get_info(&biosadapter[V_ADP_PRIMARY],
1147 biosadapter[V_ADP_PRIMARY].va_initial_mode, &info);
1006 biosadapter[V_ADP_PRIMARY].va_unit = V_ADP_PRIMARY;
1007 biosadapter[V_ADP_SECONDARY].va_unit = V_ADP_SECONDARY;
1008
1009#if 0 /* we don't need these... */
1010 fb_init_struct(&biosadapter[V_ADP_PRIMARY], ...);
1011 fb_init_struct(&biosadapter[V_ADP_SECONDARY], ...);
1012#endif
1013

--- 148 unchanged lines hidden (view full) ---

1162 biosadapter[i].va_io_size = 32;
1163 }
1164 }
1165 }
1166
1167 /* buffer address */
1168 vga_get_info(&biosadapter[V_ADP_PRIMARY],
1169 biosadapter[V_ADP_PRIMARY].va_initial_mode, &info);
1148 biosadapter[V_ADP_PRIMARY].va_mode_flags = info.vi_flags;
1149 biosadapter[V_ADP_PRIMARY].va_window = BIOS_PADDRTOVADDR(info.vi_window);
1150 biosadapter[V_ADP_PRIMARY].va_window_size = info.vi_window_size;
1151 biosadapter[V_ADP_PRIMARY].va_window_gran = info.vi_window_gran;
1152 if (info.vi_buffer_size == 0) {
1153 biosadapter[V_ADP_PRIMARY].va_buffer = 0;
1154 biosadapter[V_ADP_PRIMARY].va_buffer_size = 0;
1155 } else {
1156 biosadapter[V_ADP_PRIMARY].va_buffer
1157 = BIOS_PADDRTOVADDR(info.vi_buffer);
1158 biosadapter[V_ADP_PRIMARY].va_buffer_size = info.vi_buffer_size;
1159 }
1170 update_adapter_info(&biosadapter[V_ADP_PRIMARY], &info);
1160
1161 if (biosadapters > 1) {
1162 vga_get_info(&biosadapter[V_ADP_SECONDARY],
1163 biosadapter[V_ADP_SECONDARY].va_initial_mode, &info);
1171
1172 if (biosadapters > 1) {
1173 vga_get_info(&biosadapter[V_ADP_SECONDARY],
1174 biosadapter[V_ADP_SECONDARY].va_initial_mode, &info);
1164 biosadapter[V_ADP_SECONDARY].va_mode_flags = info.vi_flags;
1165 biosadapter[V_ADP_SECONDARY].va_window =
1166 BIOS_PADDRTOVADDR(info.vi_window);
1167 biosadapter[V_ADP_SECONDARY].va_window_size = info.vi_window_size;
1168 biosadapter[V_ADP_SECONDARY].va_window_gran = info.vi_window_gran;
1169 if (info.vi_buffer_size == 0) {
1170 biosadapter[V_ADP_SECONDARY].va_buffer = 0;
1171 biosadapter[V_ADP_SECONDARY].va_buffer_size = 0;
1172 } else {
1173 biosadapter[V_ADP_SECONDARY].va_buffer =
1174 BIOS_PADDRTOVADDR(info.vi_buffer);
1175 biosadapter[V_ADP_SECONDARY].va_buffer_size = info.vi_buffer_size;
1176 }
1175 update_adapter_info(&biosadapter[V_ADP_SECONDARY], &info);
1177 }
1178
1179 /*
1180 * XXX: we should verify the following values for the primary adapter...
1181 * crtc I/O port address: *(u_int16_t *)BIOS_PADDRTOVADDR(0x463);
1182 * color/mono display: (*(u_int8_t *)BIOS_PADDRTOVADDR(0x487) & 0x02)
1183 * ? 0 : V_ADP_COLOR;
1184 * columns: *(u_int8_t *)BIOS_PADDRTOVADDR(0x44a);

--- 239 unchanged lines hidden (view full) ---

1424 vga_load_state(adp, &params);
1425 break;
1426
1427 default:
1428 return 1;
1429 }
1430
1431 adp->va_mode = mode;
1176 }
1177
1178 /*
1179 * XXX: we should verify the following values for the primary adapter...
1180 * crtc I/O port address: *(u_int16_t *)BIOS_PADDRTOVADDR(0x463);
1181 * color/mono display: (*(u_int8_t *)BIOS_PADDRTOVADDR(0x487) & 0x02)
1182 * ? 0 : V_ADP_COLOR;
1183 * columns: *(u_int8_t *)BIOS_PADDRTOVADDR(0x44a);

--- 239 unchanged lines hidden (view full) ---

1423 vga_load_state(adp, &params);
1424 break;
1425
1426 default:
1427 return 1;
1428 }
1429
1430 adp->va_mode = mode;
1432 adp->va_mode_flags = info.vi_flags;
1433 adp->va_flags &= ~V_ADP_COLOR;
1434 adp->va_flags |=
1435 (info.vi_flags & V_INFO_COLOR) ? V_ADP_COLOR : 0;
1436 adp->va_crtc_addr =
1437 (adp->va_flags & V_ADP_COLOR) ? COLOR_CRTC : MONO_CRTC;
1438 adp->va_window = BIOS_PADDRTOVADDR(info.vi_window);
1439 adp->va_window_size = info.vi_window_size;
1440 adp->va_window_gran = info.vi_window_gran;
1441 if (info.vi_buffer_size == 0) {
1442 adp->va_buffer = 0;
1443 adp->va_buffer_size = 0;
1444 } else {
1445 adp->va_buffer = BIOS_PADDRTOVADDR(info.vi_buffer);
1446 adp->va_buffer_size = info.vi_buffer_size;
1447 }
1431 update_adapter_info(adp, &info);
1448
1449 /* move hardware cursor out of the way */
1450 (*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1);
1451
1452 return 0;
1453#else /* VGA_NO_MODE_CHANGE */
1454 return 1;
1455#endif /* VGA_NO_MODE_CHANGE */

--- 549 unchanged lines hidden (view full) ---

2005 * read_hw_cursor():
2006 * Read the position of the hardware text cursor.
2007 *
2008 * all adapters
2009 */
2010static int
2011vga_read_hw_cursor(video_adapter_t *adp, int *col, int *row)
2012{
1432
1433 /* move hardware cursor out of the way */
1434 (*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1);
1435
1436 return 0;
1437#else /* VGA_NO_MODE_CHANGE */
1438 return 1;
1439#endif /* VGA_NO_MODE_CHANGE */

--- 549 unchanged lines hidden (view full) ---

1989 * read_hw_cursor():
1990 * Read the position of the hardware text cursor.
1991 *
1992 * all adapters
1993 */
1994static int
1995vga_read_hw_cursor(video_adapter_t *adp, int *col, int *row)
1996{
2013 video_info_t info;
2014 u_int16_t off;
2015 int s;
2016
2017 if (!init_done)
2018 return 1;
2019
1997 u_int16_t off;
1998 int s;
1999
2000 if (!init_done)
2001 return 1;
2002
2020 (*vidsw[adp->va_index]->get_info)(adp, adp->va_mode, &info);
2021 if (info.vi_flags & V_INFO_GRAPHICS)
2003 if (adp->va_info.vi_flags & V_INFO_GRAPHICS)
2022 return 1;
2023
2024 s = spltty();
2025 outb(adp->va_crtc_addr, 14);
2026 off = inb(adp->va_crtc_addr + 1);
2027 outb(adp->va_crtc_addr, 15);
2028 off = (off << 8) | inb(adp->va_crtc_addr + 1);
2029 splx(s);
2030
2004 return 1;
2005
2006 s = spltty();
2007 outb(adp->va_crtc_addr, 14);
2008 off = inb(adp->va_crtc_addr + 1);
2009 outb(adp->va_crtc_addr, 15);
2010 off = (off << 8) | inb(adp->va_crtc_addr + 1);
2011 splx(s);
2012
2031 *row = off / info.vi_width;
2032 *col = off % info.vi_width;
2013 *row = off / adp->va_info.vi_width;
2014 *col = off % adp->va_info.vi_width;
2033
2034 return 0;
2035}
2036
2037/*
2038 * set_hw_cursor():
2039 * Move the hardware text cursor. If col and row are both -1,
2040 * the cursor won't be shown.
2041 *
2042 * all adapters
2043 */
2044static int
2045vga_set_hw_cursor(video_adapter_t *adp, int col, int row)
2046{
2015
2016 return 0;
2017}
2018
2019/*
2020 * set_hw_cursor():
2021 * Move the hardware text cursor. If col and row are both -1,
2022 * the cursor won't be shown.
2023 *
2024 * all adapters
2025 */
2026static int
2027vga_set_hw_cursor(video_adapter_t *adp, int col, int row)
2028{
2047 video_info_t info;
2048 u_int16_t off;
2049 int s;
2050
2051 if (!init_done)
2052 return 1;
2053
2054 if ((col == -1) && (row == -1)) {
2055 off = -1;
2056 } else {
2029 u_int16_t off;
2030 int s;
2031
2032 if (!init_done)
2033 return 1;
2034
2035 if ((col == -1) && (row == -1)) {
2036 off = -1;
2037 } else {
2057 (*vidsw[adp->va_index]->get_info)(adp, adp->va_mode, &info);
2058 if (info.vi_flags & V_INFO_GRAPHICS)
2038 if (adp->va_info.vi_flags & V_INFO_GRAPHICS)
2059 return 1;
2039 return 1;
2060 off = row*info.vi_width + col;
2040 off = row*adp->va_info.vi_width + col;
2061 }
2062
2063 s = spltty();
2064 outb(adp->va_crtc_addr, 14);
2065 outb(adp->va_crtc_addr + 1, off >> 8);
2066 outb(adp->va_crtc_addr, 15);
2067 outb(adp->va_crtc_addr + 1, off & 0x00ff);
2068 splx(s);

--- 171 unchanged lines hidden ---
2041 }
2042
2043 s = spltty();
2044 outb(adp->va_crtc_addr, 14);
2045 outb(adp->va_crtc_addr + 1, off >> 8);
2046 outb(adp->va_crtc_addr, 15);
2047 outb(adp->va_crtc_addr + 1, off & 0x00ff);
2048 splx(s);

--- 171 unchanged lines hidden ---