Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 May 2010 15:29:53 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r208564 - head/sys/isa
Message-ID:  <201005261529.o4QFTrIA084436@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Wed May 26 15:29:53 2010
New Revision: 208564
URL: http://svn.freebsd.org/changeset/base/208564

Log:
  Let the first device suspend and the last device resume syscons(4).

Modified:
  head/sys/isa/syscons_isa.c

Modified: head/sys/isa/syscons_isa.c
==============================================================================
--- head/sys/isa/syscons_isa.c	Wed May 26 11:31:57 2010	(r208563)
+++ head/sys/isa/syscons_isa.c	Wed May 26 15:29:53 2010	(r208564)
@@ -116,10 +116,10 @@ scsuspend(device_t dev)
 
 	sc = &main_softc;
 
-	if (sc->cur_scp == NULL || sc->suspend_in_progress)
+	if (sc->cur_scp == NULL)
 		return (0);
 
-	if (!sc_no_suspend_vtswitch) {
+	if (sc->suspend_in_progress == 0 && !sc_no_suspend_vtswitch) {
 		sc_cur_scr = sc->cur_scp->index;
 		do {
 			sc_switch_scr(sc, 0);
@@ -128,8 +128,7 @@ scsuspend(device_t dev)
 			pause("scsuspend", hz);
 		} while (retry--);
 	}
-
-	sc->suspend_in_progress = TRUE;
+	sc->suspend_in_progress++;
 
 	return (0);
 }
@@ -141,12 +140,8 @@ scresume(device_t dev)
 
 	sc = &main_softc;
 
-	if (!sc->suspend_in_progress)
-		return (0);
-
-	sc->suspend_in_progress = FALSE;
-
-	if (!sc_no_suspend_vtswitch)
+	sc->suspend_in_progress--;
+	if (sc->suspend_in_progress == 0 && !sc_no_suspend_vtswitch)
 		sc_switch_scr(sc, sc_cur_scr);
 
 	return (0);



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