如题,linux的driver的电源管理最终会调到回调中的suspend和resume函数来进行挂起和唤醒的过程,现在不明白的是suspend和resume中具体操作是什么啊?难道只是在只对寄存器的保存和恢复吗?比如:现实屏的电源管理做些什么动作啊(如何实现关掉背光和唤醒等等),求教大侠给个解释哦?
------解决方案--------------------
LCD休眠时:先调用backlight驱动,关闭背光;然后调用LCDC驱动关掉SOC内部的LCDC的CLK输出,并保存LCDC内部寄存器数值到结构体;
LCD唤醒时:
恢复结构体LCDC数值到内部寄存器,然后调用LCDC驱动关掉SOC内部的LCDC的CLK输出;再调用backlight驱动,打开背光;
------解决方案--------------------
我找了个Kernel文件,不知道对你有用没有, drivers/video/omap/lcdc.c
- C/C++ code
601 /* PM code called only in internal controller mode */ 602 static void omap_lcdc_suspend(void) 603 { 604 if (lcdc.update_mode == OMAPFB_AUTO_UPDATE) { 605 disable_controller(); 606 omap_stop_lcd_dma(); 607 } 608 }