~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/arch/arm/omap/omap_pm.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/arch/arm/omap/omap_pm.rst (Version linux-6.12-rc7) and /Documentation/arch/i386/omap/omap_pm.rst (Version linux-4.12.14)


  1 =====================                             
  2 The OMAP PM interface                             
  3 =====================                             
  4                                                   
  5 This document describes the temporary OMAP PM     
  6 authors use these functions to communicate min    
  7 throughput constraints to the kernel power man    
  8 Over time, the intention is to merge features     
  9 interface into the Linux PM QoS code.             
 10                                                   
 11 Drivers need to express PM parameters which:      
 12                                                   
 13 - support the range of power management parame    
 14                                                   
 15 - separate the drivers from the underlying PM     
 16   implementation, whether it is the TI SRF or     
 17   latency framework or something else;            
 18                                                   
 19 - specify PM parameters in terms of fundamenta    
 20   latency and throughput, rather than units wh    
 21   or to particular OMAP variants;                 
 22                                                   
 23 - allow drivers which are shared with other ar    
 24   DaVinci) to add these constraints in a way w    
 25   systems,                                        
 26                                                   
 27 - can be implemented immediately with minimal     
 28   architectures.                                  
 29                                                   
 30                                                   
 31 This document proposes the OMAP PM interface,     
 32 five power management functions for driver cod    
 33                                                   
 34 1. Set the maximum MPU wakeup latency::           
 35                                                   
 36    (*pdata->set_max_mpu_wakeup_lat)(struct dev    
 37                                                   
 38 2. Set the maximum device wakeup latency::        
 39                                                   
 40    (*pdata->set_max_dev_wakeup_lat)(struct dev    
 41                                                   
 42 3. Set the maximum system DMA transfer start l    
 43                                                   
 44    (*pdata->set_max_sdma_lat)(struct device *d    
 45                                                   
 46 4. Set the minimum bus throughput needed by a     
 47                                                   
 48    (*pdata->set_min_bus_tput)(struct device *d    
 49                                                   
 50 5. Return the number of times the device has l    
 51                                                   
 52    (*pdata->get_dev_context_loss_count)(struct    
 53                                                   
 54                                                   
 55 Further documentation for all OMAP PM interfac    
 56 found in arch/arm/plat-omap/include/mach/omap-    
 57                                                   
 58                                                   
 59 The OMAP PM layer is intended to be temporary     
 60 ---------------------------------------------     
 61                                                   
 62 The intention is that eventually the Linux PM     
 63 the range of power management features present    
 64 happens, existing drivers using the OMAP PM in    
 65 to use the Linux PM QoS code; and the OMAP PM     
 66                                                   
 67                                                   
 68 Driver usage of the OMAP PM functions             
 69 -------------------------------------             
 70                                                   
 71 As the 'pdata' in the above examples indicates    
 72 exposed to drivers through function pointers i    
 73 structures.  The function pointers are initial    
 74 files to point to the corresponding OMAP PM fu    
 75                                                   
 76 - set_max_dev_wakeup_lat will point to            
 77   omap_pm_set_max_dev_wakeup_lat(), etc.  Othe    
 78   not support these functions should leave the    
 79   to NULL.  Drivers should use the following i    
 80                                                   
 81         if (pdata->set_max_dev_wakeup_lat)        
 82             (*pdata->set_max_dev_wakeup_lat)(d    
 83                                                   
 84 The most common usage of these functions will     
 85 the maximum time from when an interrupt occurs    
 86 becomes accessible.  To accomplish this, drive    
 87 set_max_mpu_wakeup_lat() function to constrain    
 88 latency, and the set_max_dev_wakeup_lat() func    
 89 device wakeup latency (from clk_enable() to ac    
 90 example::                                         
 91                                                   
 92         /* Limit MPU wakeup latency */            
 93         if (pdata->set_max_mpu_wakeup_lat)        
 94             (*pdata->set_max_mpu_wakeup_lat)(d    
 95                                                   
 96         /* Limit device powerdomain wakeup lat    
 97         if (pdata->set_max_dev_wakeup_lat)        
 98             (*pdata->set_max_dev_wakeup_lat)(d    
 99                                                   
100         /* total wakeup latency in this exampl    
101                                                   
102 The PM parameters can be overwritten by callin    
103 with the new value.  The settings can be remov    
104 function with a t argument of -1 (except in th    
105 set_max_bus_tput(), which should be called wit    
106                                                   
107 The fifth function above, omap_pm_get_dev_cont    
108 is intended as an optimization to allow driver    
109 device has lost its internal context.  If cont    
110 driver must restore its internal context befor    
111                                                   
112                                                   
113 Other specialized interface functions             
114 -------------------------------------             
115                                                   
116 The five functions listed above are intended t    
117 device driver.  DSPBridge and CPUFreq have a f    
118 DSPBridge expresses target DSP performance lev    
119 CPUFreq expresses target MPU performance level    
120 frequency.  The OMAP PM interface contains fun    
121 specialized cases to convert that input inform    
122 frequency) into the form that the underlying p    
123 implementation needs:                             
124                                                   
125 6. `(*pdata->dsp_get_opp_table)(void)`            
126                                                   
127 7. `(*pdata->dsp_set_min_opp)(u8 opp_id)`         
128                                                   
129 8. `(*pdata->dsp_get_opp)(void)`                  
130                                                   
131 9. `(*pdata->cpu_get_freq_table)(void)`           
132                                                   
133 10. `(*pdata->cpu_set_freq)(unsigned long f)`     
134                                                   
135 11. `(*pdata->cpu_get_freq)(void)`                
136                                                   
137 Customizing OPP for platform                      
138 ============================                      
139 Defining CONFIG_PM should enable OPP layer for    
140 and the registration of OPP table should take     
141 However, in special cases, the default OPP tab    
142 tweaked, for e.g.:                                
143                                                   
144  * enable default OPPs which are disabled by d    
145    could be enabled on a platform                 
146  * Disable an unsupported OPP on the platform     
147  * Define and add a custom opp table entry        
148    in these cases, the board file needs to do     
149                                                   
150 arch/arm/mach-omapx/board-xyz.c::                 
151                                                   
152         #include "pm.h"                           
153         ....                                      
154         static void __init omap_xyz_init_irq(v    
155         {                                         
156                 ....                              
157                 /* Initialize the default tabl    
158                 omapx_opp_init();                 
159                 /* Do customization to the def    
160                 ....                              
161         }                                         
162                                                   
163 NOTE:                                             
164   omapx_opp_init will be omap3_opp_init or as     
165   based on the omap family.                       
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php