[Angstrom-devel] Problems with screen blanking on h2200
Dmitry Artamonow
mad_soft at inbox.ru
Sun Oct 21 11:05:37 CEST 2007
Sorry for probably off-topic, but kernel-devel at hh.org seems to be long
time dead, and I don't know where else I can post kernel-related
problems. I would be glad if someone can clarify current situation
with handhelds kernel developement.
Anyway, here's my story. Recently I've been playing with Gentoo on my
h2200. After compiling xorg-server-1.4 (full-blown, not the kdrive version),
I tried to start it - but without success. Screen flickered, turned
black, then flickered again and slowly turned white instead of showing X
cursor. X server itself didn't show any error in console or logs and worked
until ^C was pressed. But even after ^C screen never returned to normal
state until reset.
I tried to run X under strace and noticed this calls:
ioctl(6, FBIOBLANK, 0x1) = 0
and then near the end of strace log:
ioctl(6, FBIOBLANK, 0) = 0
This seemed to be the cause, because I already experienced similar
problems with blanking in plain console and was pressed to workaround it
with "setterm -blank 0". Simple testcase program in C proved it, and
also I found that bug can be triggered from command line by following
statements:
echo 1 > /sys/class/graphics/fb0/blank
echo 0 > /sys/class/graphics/fb0/blank
For assuring myself what it's not the fault of my custom kernel config,
I checked also with LiveRam Angstrom image (20070922) and successfully
triggered this bug from command line.
Then I dug into kernel code, but since I'm not a kernel hacker at all,
the only thing I tried was commenting out mq1100fb_power call from
mq1100fb_blank function in drivers/video/mq1100fb.c :
--------------------------------------------------------------------------
diff -u -r1.45 mq1100fb.c
--- drivers/video/mq1100fb.c 18 Jul 2007 19:21:42 -0000 1.45
+++ drivers/video/mq1100fb.c 21 Oct 2007 08:25:30 -0000
@@ -318,7 +318,7 @@
* blank_mode == 4: powerdown
*/
- mq1100fb_power (info, blank_mode);
+/* mq1100fb_power (info, blank_mode); */
return 0;
}
--------------------------------------------------------------------------
Suddenly it turned out to be a solution - screen was blanking anyway
(seemed that it's somehow handled by drivers/video/backlight/h2200_lcd.c
driver (and maybe backlight driver too)), but on unblanking it has all of
its contents intact and X finally worked. Still I can't understand how it
works and how screen blanking differs from device suspending which seemed
to call the same mq1100fb_power without any problems.
--
Best regards,
Dmitry "MAD" Artamonow
More information about the Angstrom-distro-devel
mailing list