From a164b74b53eac5985cd336da36f29b0aa0c77ff6 Mon Sep 17 00:00:00 2001 From: sato Date: Wed, 24 Jan 2001 03:50:20 +0000 Subject: [PATCH] revert one of 1.34 change. > * emul/mapping infomation turn to per screen. (my misunderstanding) currently per device. --- sys/arch/hpcmips/dev/hpcfb.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/sys/arch/hpcmips/dev/hpcfb.c b/sys/arch/hpcmips/dev/hpcfb.c index 3b8a4705e885..6ab4633a0d37 100644 --- a/sys/arch/hpcmips/dev/hpcfb.c +++ b/sys/arch/hpcmips/dev/hpcfb.c @@ -1,4 +1,4 @@ -/* $NetBSD: hpcfb.c,v 1.34 2001/01/24 01:38:53 sato Exp $ */ +/* $NetBSD: hpcfb.c,v 1.35 2001/01/24 03:50:20 sato Exp $ */ /*- * Copyright (c) 1999 @@ -46,7 +46,7 @@ static const char _copyright[] __attribute__ ((unused)) = "Copyright (c) 1999 Shin Takemura. All rights reserved."; static const char _rcsid[] __attribute__ ((unused)) = - "$Id: hpcfb.c,v 1.34 2001/01/24 01:38:53 sato Exp $"; + "$Id: hpcfb.c,v 1.35 2001/01/24 03:50:20 sato Exp $"; #include #include @@ -148,7 +148,6 @@ struct hpcfb_devconfig { int dc_memsize; #endif /* HPCFB_MULTI */ u_char *dc_fbaddr; - int dc_mapping; }; #define HPCFB_MAX_SCREEN 5 @@ -167,6 +166,7 @@ struct hpcfb_softc { struct device *sc_wsdisplay; int sc_screen_resumed; int sc_polling; + int sc_mapping; struct proc *sc_thread; struct lock sc_lock; void *sc_wantedscreen; @@ -342,6 +342,7 @@ hpcfbattach(parent, self, aux) sc->sc_dc->dc_sc = sc; } sc->sc_polling = 0; /* XXX */ + sc->sc_mapping = 0; /* XXX */ callout_init(&sc->sc_switch_callout); hpcfb_stdscreen.nrows = sc->sc_dc->dc_rows; hpcfb_stdscreen.ncols = sc->sc_dc->dc_cols; @@ -421,7 +422,7 @@ hpcfb_thread(arg) for (;;) { /* HPCFB_LOCK(sc); */ sc->sc_dc->dc_state |= HPCFB_DC_SCRTHREAD; - if (!sc->sc_dc->dc_mapping) /* draw only EMUL mode */ + if (!sc->sc_mapping) /* draw only EMUL mode */ hpcfb_update(sc->sc_dc); sc->sc_dc->dc_state &= ~HPCFB_DC_SCRTHREAD; /* APM_UNLOCK(sc); */ @@ -512,7 +513,6 @@ hpcfb_init(fbconf, dc) dc->dc_rows = dc->dc_rinfo.ri_rows; dc->dc_cols = dc->dc_rinfo.ri_cols; dc->dc_state |= HPCFB_DC_CURRENT; - dc->dc_mapping = 0; #ifdef HPCFB_JUMP dc->dc_max_row = 0; dc->dc_min_row = dc->dc_rows; @@ -620,8 +620,9 @@ hpcfb_ioctl(v, cmd, data, flag, p) case WSDISPLAYIO_SMODE: if (*(int *)data == WSDISPLAYIO_MODE_EMUL){ - if (dc->dc_mapping){ - dc->dc_mapping = 0; +printf("EMUL %x\n", (int)dc); + if (sc->sc_mapping){ + sc->sc_mapping = 0; if (dc->dc_state&HPCFB_DC_DRAWING) dc->dc_state &= ~HPCFB_DC_ABORT; #if HPCFB_FORCE_REDRAW @@ -631,11 +632,12 @@ hpcfb_ioctl(v, cmd, data, flag, p) #endif } } else { - if (!dc->dc_mapping) { - dc->dc_mapping = 1; +printf("MAPPED %x\n", (int)dc); + if (!sc->sc_mapping) { + sc->sc_mapping = 1; dc->dc_state |= HPCFB_DC_ABORT; } - dc->dc_mapping = 1; + sc->sc_mapping = 1; } if (sc && sc->sc_accessops->iodone) (*sc->sc_accessops->iodone)(sc->sc_accessctx); @@ -857,6 +859,7 @@ hpcfb_show_screen(v, cookie, waitok, cb, cbarg) #ifdef HPCFB_MULTI odc = sc->sc_dc; +printf("switch request %x %x\n", (int)odc, (int)dc); if (dc == NULL || odc == dc) { hpcfb_refresh_screen(sc); return 0; @@ -891,6 +894,7 @@ hpcfb_doswitch(sc) odc = sc->sc_dc; dc = sc->sc_wantedscreen; +printf("doswitch %x %x\n",(int)odc, (int)dc); if (!dc) { (*sc->sc_switchcb)(sc->sc_switchcbarg, EIO, 0); return; @@ -1330,7 +1334,7 @@ hpcfb_redraw(cookie, row, num, all) #endif /* HPCFB_JUMP */ if (dc->dc_sc != NULL && !dc->dc_sc->sc_polling - && dc->dc_mapping) + && dc->dc_sc->sc_mapping) return; dc->dc_state &= ~HPCFB_DC_ABORT; @@ -1411,7 +1415,7 @@ hpcfb_do_scroll(v) dc->dc_state |= HPCFB_DC_SCRDELAY; else if (dc->dc_sc != NULL && dc->dc_sc->sc_thread) wakeup(dc->dc_sc); - else if (dc->dc_sc != NULL && !dc->dc_mapping) { + else if (dc->dc_sc != NULL && !dc->dc_sc->sc_mapping) { /* draw only EMUL mode */ hpcfb_update(v); }