mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linux Frame Buffer Device Development 
	<linux-fbdev-devel@lists.sourceforge.net>,
	Linux Kernel Development <linux-kernel@vger.kernel.org>
Subject: console.c unblank_screen problem
Date: Sun, 25 Mar 2001 18:40:03 +0200	[thread overview]
Message-ID: <20010325164003.6131@smtp.wanadoo.fr> (raw)

There is a problem with the power management code for console.c

The current code calls do_blank_screen(0); on PM_SUSPEND, and
unblank_screen() on PM_RESUME.

The problem happens when X is the current display while putting the
machine to sleep. The do_blank_screen(0) code will do nothing as
the console is not in KD_TEXT mode.
However, unblank_screen has no such protection. That means that
on wakeup, the cursor timer & console blank timers will be re-enabled
while X is frontmost, causing the blinking cursor to be displayed on
top of X, and other possible issues.

I hacked the following pacth to work around this. It appear to work
fine, but since the console code is pretty complex, I'm not sure about
possible side effects and I'd like some comments before submiting it
to Linus:

(Don't worry about the {} I added, I just noticed them and will remove
them before submitting ;)

--- 1.2/drivers/char/console.c	Sat Feb 10 18:54:15 2001
+++ edited/drivers/char/console.c	Sun Mar 25 17:57:46 2001
@@ -2595,8 +2595,9 @@
 	int currcons = fg_console;
 	int i;
 
-	if (console_blanked)
+	if (console_blanked) {
 		return;
+	}
 
 	/* entering graphics mode? */
 	if (entering_gfx) {
@@ -2660,12 +2661,16 @@
 		printk("unblank_screen: tty %d not allocated ??\n", fg_console+1);
 		return;
 	}
+	currcons = fg_console;
+	if (vcmode != KD_TEXT) {
+		console_blanked = 0;
+		return;
+	}
 	console_timer.function = blank_screen;
 	if (blankinterval) {
 		mod_timer(&console_timer, jiffies + blankinterval);
 	}
 
-	currcons = fg_console;
 	console_blanked = 0;
 	if (console_blank_hook)
 		console_blank_hook(0);



             reply	other threads:[~2001-03-25 16:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-25 16:40 Benjamin Herrenschmidt [this message]
2001-03-31  0:15 ` Recent problems with APM and XFree86-4.0.1 Jamie Lokier
2001-03-31  5:37   ` Stephen Rothwell
2001-03-31 14:25     ` Jamie Lokier
2001-04-01 21:41       ` Jamie Lokier
2001-04-01 22:31         ` Rafael E. Herrera
2001-04-02 12:42           ` Jamie Lokier
2001-04-03  6:35     ` Alain E.
2001-04-04 11:09 console.c unblank_screen problem Mikael Pettersson
2001-04-04 12:18 ` Benjamin Herrenschmidt
2001-04-06 15:46 Mikael Pettersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010325164003.6131@smtp.wanadoo.fr \
    --to=benh@kernel.crashing.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®