屏幕黑下去後,再按POWER鍵只有背光沒有圖像

按POWER鍵進入idle模式時,logcat輸出:
request_suspend_state: sleep (0->3) at 26963560170 (2010-01-01 12:00:26.982533335 UTC)
IT7260_ts_i2c call suspend
I/power   (   72): *** set_screen_state 0
D/SurfaceFlinger(   72): About to give-up screen, flinger = 0x20b430
E/SurfaceFlinger(   72): ioctl(27, VT_RELDISP, 1) failed 22 (Invalid argument)
stop_drawing_early_suspend: timeout waiting for userspace to stop drawing

出錯了。 開始搜索SurfaceFlinger中的VT_RELDISP,然後結合kernel中對此參數的
處理,沒有發現什麼有價值的東西,然後追蹤最後一句:
stop_drawing_early_suspend: timeout waiting for userspace to stop drawing
jeff@microlink-desktop:kernel$ grep "timeout waiting for userspace to stop drawing" . -r
Binary file ./.tmp_vmlinux1 matches
Binary file ./vmlinux matches
Binary file ./.tmp_vmlinux2 matches
Binary file ./vmlinux.o matches
Binary file ./arch/arm/boot/Image matches
Binary file ./kernel/built-in.o matches
Binary file ./kernel/power/built-in.o matches
Binary file ./kernel/power/fbearlysuspend.o matches
jeff@microlink-desktop:kernel$ 
目標文件中包含字符,可源代碼中沒有搜索到,於是縮短些搜索:
jeff@microlink-desktop:kernel$ grep "to stop drawing" . -r                                      
Binary file ./.tmp_vmlinux1 matches
Binary file ./vmlinux matches
Binary file ./.tmp_vmlinux2 matches
Binary file ./vmlinux.o matches
Binary file ./arch/arm/boot/Image matches
Binary file ./kernel/built-in.o matches
Binary file ./kernel/power/built-in.o matches
./kernel/power/fbearlysuspend.c:/* tell userspace to stop drawing, wait for it to stop */
./kernel/power/fbearlysuspend.c:                           "userspace to stop drawing\n");
Binary file ./kernel/power/fbearlysuspend.o matches
jeff@microlink-desktop:kernel$ 
這下終於有帶.c的文件了,查看 kernel/power/Makefile
obj-$(CONFIG_FB_EARLYSUSPEND)   += fbearlysuspend.o
查看kernel根目錄下的.config
jeff@microlink-desktop:kernel$ cat .config | grep "CONFIG_FB_EARLYSUSPEND"
CONFIG_FB_EARLYSUSPEND=y
然後再查看之前android2.2內核2.6.32.9中的這項
jeff@microlink-desktop:kernel$ cat .config | grep "CONFIG_FB_EARLYSUSPEND"
# CONFIG_FB_EARLYSUSPEND is not set
於是
Power management options  --->
   User-space screen access (Sysfs interface)  --->
         ( ) None                                           
         (X) Console switch on early-suspend
         ( ) Sysfs interface     
編譯燒寫,OK!


BTW:
Device Drivers ->Graphics support  --->Console display driver support  ---> 
此選項需要先選中
Device Drivers ->Character devices  --->[*] Virtual terminal 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章