首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

求解linux中driver的suspend和resume有关问题

2012-03-27 
求解linux中driver的suspend和resume问题?如题,linux的driver的电源管理最终会调到回调中的suspend和resum

求解linux中driver的suspend和resume问题?
如题,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 } 

热点排行