SRF Replacement - Constraints Part

From OMAPpedia

(Difference between revisions)
Jump to: navigation, search
(Created page with '==SRF Replacement - Constraints Part== ===Types of Latency Constraints=== * '''Interrupt latency or System latency''' ** This is the total amount of time taken once an interrupt …')
Line 1: Line 1:
 +
==Introduction==
 +
This wikipage describes the efforts of replacing constraints part of the Shared Resource Framework (SRF).
 +
 +
==SRF Replacement - Constraints Part==
==SRF Replacement - Constraints Part==
===Types of Latency Constraints===
===Types of Latency Constraints===
Line 84: Line 88:
  }
  }
-
===Minutes & Action Items===
 
-
* Use device wakeup latency instead of device latency.
 
-
* Need to start pursuing the HW team to provide wakeup latency numbers – this is a very much needed in the long run; and it is needed for complete entitlement of HW PM features by the SW
 
-
* Aligned on Vibhore’s proposal + comments provided during the meeting (e.g. structures suggested by Paul during meeting); Vibhore can go ahead with the implementation
 
-
 
-
.wakeuplat = {
 
-
    [FUNC-PWRST-OFF] = 50,
 
-
    [FUNC-PWRST-OSWR] = 30,
 
-
  [FUNC-PWRST-CSWR] = 5,
 
-
  [FUNC-PWRST-ON] = 0,
 
-
};
 
-
.func_pwrsts = (FUNC_PWRST_OFF | FUNC_PWRST_OSWR | FUNC_PWRST_CSWR |  FUNC_PWRST_ON)
 
-
1 << FUNC_PWRST_OFF
 
-
pwrdm_wakelat_set_constraint
 
-
pwrdm_wakeuplat_remove_constraint
 
-
pwrdm_wakeuplat_update_pwrst)
 
-
* The open question is how we measure the latencies and who will do it.
+
===Implementation Schedule===
 +
'''Post PM Workshop Deliverables for SRF Replacement - Constraints Part'''
 +
{|class="wikitable sortable"  | border="2" cellpadding="10" cellspacing="0" | style="color:dark; background-color:white;"
 +
| align="center" | '''Task'''
 +
| align="center" | '''Owner'''
 +
| align="center" | '''Target Date'''
 +
| align="center" | '''State'''
 +
| align="center" | '''Status'''
 +
| align="center" | '''Comments & Actions'''
 +
|-
 +
| Start with the design as aligned in the workshop and implement check for state change function || Vibhore || 25-Jun || In progress || 23-Jun: On track || None
 +
|-
 +
| Resolve any compilation issues & test on blaze || Vibhore || 28-Jun || Not started || 23-Jun: None || None
 +
|-
 +
| Post RFC patches || Vibhore || 30-Jun || Not started || 23-Jun: None || None
 +
|-
 +
| Extensive testing on OMAP3 & OMAP4 and rework to address review comments || Vibhore || 31-Jul || Not started || 23-Jun: None || None
 +
|-
 +
|
 +
|}

Revision as of 17:51, 25 June 2010

Contents

Introduction

This wikipage describes the efforts of replacing constraints part of the Shared Resource Framework (SRF).


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);
	else
		 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
}


Implementation Schedule

Post PM Workshop Deliverables for SRF Replacement - Constraints Part

Task Owner Target Date State Status Comments & Actions
Start with the design as aligned in the workshop and implement check for state change function Vibhore 25-Jun In progress 23-Jun: On track None
Resolve any compilation issues & test on blaze Vibhore 28-Jun Not started 23-Jun: None None
Post RFC patches Vibhore 30-Jun Not started 23-Jun: None None
Extensive testing on OMAP3 & OMAP4 and rework to address review comments Vibhore 31-Jul Not started 23-Jun: None None
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox