当前位置: 代码迷 >> 驱动开发 >> 求解linux中driver的suspend和resume有关问题
  详细解决方案

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

热度:129   发布时间:2016-04-28 11:00:44.0
求解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 }
  相关解决方案