lkml.org 
[lkml]   [2007]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectSuspend to RAM fault in VT when resuming
Pavel,

I've chased one of the 'Suspend to RAM' resume problems to a specific
line in drivers/char/vt.c, see attached 2.6.21-rc3 diff with
TRACE_RESUME() instrumentation. The macro scr_writew resolves to '*addr
= val', which appears to be causing the problem. I've verified that the
pointer is not NULL, but don't know if its really valid. Its pretty
tough to tell what is happening, but on a Dell XPS it just hangs. A Dell
Precision blinks the keyboard lights.

Since I don't know anything about video programming, I though perhaps
you might have an opinion.

rtg
--
Tim Gardner tim.gardner@ubuntu.com
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index c3f8e38..43a0904 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -98,6 +98,7 @@
#include <linux/pm.h>
#include <linux/font.h>
#include <linux/bitops.h>
+#include <linux/resume-trace.h>

#include <asm/io.h>
#include <asm/system.h>
@@ -2263,7 +2264,9 @@ static void vt_console_print(struct console *co, const char *b, unsigned count)
if (c == 10 || c == 13)
continue;
}
+TRACE_RESUME(0);
scr_writew((vc->vc_attr << 8) + c, (unsigned short *)vc->vc_pos);
+TRACE_RESUME(0);
cnt++;
if (myx == vc->vc_cols - 1) {
vc->vc_need_wrap = 1;
\
 
 \ /
  Last update: 2007-03-13 22:11    [from the cache]
©2003-2011 Jasper Spaans