Proceedings of the PM SW Workshop Jun 2010

From OMAPpedia

(Difference between revisions)
Jump to: navigation, search
(Power Domain And Clock Domain Cleanup)
Line 226: Line 226:
==Review of Device Driver HWMOD Adaptations==
==Review of Device Driver HWMOD Adaptations==
* Paul will provide omap_device_enable_wakeup() and omap_device_disable_wakeup() functions  
* MUSB team to investigate whether omap_device_enable_wakeup() and omap_device_disable_wakeup() functions need to be added to take care of an errata
** These are needed to take care of an errata
** Current user of this will be MUSB but in future other drivers can also use this
** Current user of this will be MUSB but in future other drivers can also use this  

Revision as of 15:40, 11 June 2010

This wikipage contains proceedings of the PM SW Workshop held in Bangalore on 7-11 Jun, 2010


HWMOD Framework Enhancements

Reset Management Support in HWMOD

More Granular HWMOD Structures

Multi-level omap_device_idle

Placeholder for patches from Vibhore to support device latency contraint

Access to HWMOD Internal Data

Miscellaneous Issues

Minutes & Action Items

Power Domain And Clock Domain Cleanup

Aligned on the following two phase approach

SRF Replacement - Constraints Part

Types of Latency Constraints

Details of Interrupt Latency

Details of Device Latency

Proposed Implementation

void omap_pm_set_max_dev_wakeup_lat(struct device *dev, long t)
	/*  existing code */	
	1. Look for devices’ power domain (might be multiple step if starting  with general device)
	2. Use device name as identifier for constraint request

	if (t == -1)
		pwrdm_release_wakeup_lat_constraint (pwrdm, lat_dev_name);
		 pwrdm_set_wakeup_lat_constraint (pwrdm, lat_dev_name, t);
struct powerdomain {
/* existing entries*/
const u32 wakeup_lat[PWRDM_MAX_PWRSTS-1];
static LIST_HEAD(wakeup_lat_constraint_list);
static struct powerdomain core_44xx_pwrdm = {
.wakeup_lat = {
50,   /* off */
20,   /* ret */ -1 for not supported power state
0,     /* inactive */ Do we have to worry about OSWR?
pwrdm_set_wakeup_lat_constraint (struct powerdomain *pwrdm, char *lat_dev_name, long lat_us){
	1. If new constraint, add a new entry to wakeup_lat_constraint_list
	2. If already existing, update entries’ latency value
	3. pwrdm_check_for_state_change (pwrdm)
pwrdm_release_wakeup_lat_constraint (struct powerdomain *pwrdm, char   *lat_dev_name){
	1. Remove this devices’ constraint from wakeup_lat_constraint_list
	2. pwrdm_check_for_state_change (pwrdm)
pwrdm_check_for_state_change (struct powerdomain *pwrdm){
	1. min_latency = find_min_wakeup_latency_constraint (pwrdm) 
		 //go through the list for minimum latency value
	2. find power state that has latency lower than minimum constraint
		 for (new_state = 0x0; new_state < PWRDM_MAX_PWRSTS; new_state++){
		    if (pwrdm->wakeup_lat[i] < min_latency) break;
	3.  if (pwrdm->state != new_state)
 		    pwrdm_set_next_pwrst (pwrdm, new_state); // existing function to program next state

Minutes & Action Items

.wakeuplat = {
    [FUNC-PWRST-OFF] = 50,
   [FUNC-PWRST-OSWR] = 30,
  [FUNC-PWRST-ON] = 0,

SRF Replacement - OPP Part

Aligned on using device based OPP approach & maintaining constraints in voltage layer for OPP part of SRF replacement. Sufficient details have been worked out to proceed with the basic DVFS implementation of VDD MPU, VDD IVA & VDD Core voltage domains.

RFC Patches

Here is a work-in-progress patch that shows work done so far and some of the review comments addressed. Please note that this is in no way completed, compiling, clean patch. It is provided to have a better idea of the changes proposed and discussed.

File:SRF Replacement OPP Part RFC Patch.pdf

Minutes & Action Items

Review of Device Driver HWMOD Adaptations





General Minutes and Action Items

Personal tools