summaryrefslogtreecommitdiffstats
path: root/sys/dev/syscons
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-05-22 07:35:17 +0000
committerjkim <jkim@FreeBSD.org>2010-05-22 07:35:17 +0000
commit64e597f0789096550e2a46dcc41cb59d447a9fc3 (patch)
tree321148f56fd04d09715225b8a1c8f81799568e13 /sys/dev/syscons
parent810a32455d43efc2de222a2109f0691456aa7645 (diff)
downloadFreeBSD-src-64e597f0789096550e2a46dcc41cb59d447a9fc3.zip
FreeBSD-src-64e597f0789096550e2a46dcc41cb59d447a9fc3.tar.gz
Suspend screen updates when the video controller is powered down.
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r--sys/dev/syscons/syscons.c4
-rw-r--r--sys/dev/syscons/syscons.h1
2 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 9128393..4bf5e15 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -1692,7 +1692,7 @@ sccnupdate(scr_stat *scp)
{
/* this is a cut-down version of scrn_timer()... */
- if (scp->sc->font_loading_in_progress)
+ if (scp->sc->suspend_in_progress || scp->sc->font_loading_in_progress)
return;
if (debugger > 0 || panicstr || shutdown_in_progress) {
@@ -1742,7 +1742,7 @@ scrn_timer(void *arg)
return;
/* don't do anything when we are performing some I/O operations */
- if (sc->font_loading_in_progress) {
+ if (sc->suspend_in_progress || sc->font_loading_in_progress) {
if (again)
timeout(scrn_timer, sc, hz / 10);
return;
diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h
index a23f884..5efdb98 100644
--- a/sys/dev/syscons/syscons.h
+++ b/sys/dev/syscons/syscons.h
@@ -230,6 +230,7 @@ typedef struct sc_softc {
char switch_in_progress;
char write_in_progress;
char blink_in_progress;
+ char suspend_in_progress;
struct mtx video_mtx;
long scrn_time_stamp;
OpenPOWER on IntegriCloud