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

This commit is contained in:
Jung-uk Kim 2010-05-26 15:29:53 +00:00
parent 38eeaac17b
commit cb881f8f8e

View File

@ -116,10 +116,10 @@ scsuspend(device_t dev)
sc = &main_softc; sc = &main_softc;
if (sc->cur_scp == NULL || sc->suspend_in_progress) if (sc->cur_scp == NULL)
return (0); return (0);
if (!sc_no_suspend_vtswitch) { if (sc->suspend_in_progress == 0 && !sc_no_suspend_vtswitch) {
sc_cur_scr = sc->cur_scp->index; sc_cur_scr = sc->cur_scp->index;
do { do {
sc_switch_scr(sc, 0); sc_switch_scr(sc, 0);
@ -128,8 +128,7 @@ scsuspend(device_t dev)
pause("scsuspend", hz); pause("scsuspend", hz);
} while (retry--); } while (retry--);
} }
sc->suspend_in_progress++;
sc->suspend_in_progress = TRUE;
return (0); return (0);
} }
@ -141,12 +140,8 @@ scresume(device_t dev)
sc = &main_softc; sc = &main_softc;
if (!sc->suspend_in_progress) sc->suspend_in_progress--;
return (0); if (sc->suspend_in_progress == 0 && !sc_no_suspend_vtswitch)
sc->suspend_in_progress = FALSE;
if (!sc_no_suspend_vtswitch)
sc_switch_scr(sc, sc_cur_scr); sc_switch_scr(sc, sc_cur_scr);
return (0); return (0);