SRF Replacement - Constraints Part

From OMAPpedia

(Difference between revisions)
Jump to: navigation, search
m
(Implementation Schedule)
Line 98: Line 98:
| align="center" | '''Comments & Actions'''
| align="center" | '''Comments & Actions'''
|-
|-
-
| Start with the design as aligned in the workshop and implement check for state change function || Vibhore || 25-Jun || Completed || 30-Jun: Completed 23-Jun: On track || None
+
| Start with the design as aligned in the workshop and implement check for state change function || Vibhore || 25-Jun || Completed || '''30-Jun: ''' Completed '''23-Jun: ''' On track || None
|-
|-
-
| Resolve any compilation issues & test on zoom3 || Vibhore || New: 7-Jul, Orig: 28-Jun  || Under Progress|| 2-Jul: debugging & functionality testing 23-Jun: None || None
+
| Resolve any compilation issues & test on zoom3 || Vibhore || '''New: ''' 07-Jul ''' Orig: ''' 28-Jun  || In Progress|| '''07-Jul: ''' Faced few issues with test code which had to be developed for testing device latency constraints'''02-Jul: ''' debugging & functionality testing '''23-Jun: ''' None || None
|-
|-
| Implement interrupt latency API || Vibhore || 15-Jul || Not started|| None || None
| Implement interrupt latency API || Vibhore || 15-Jul || Not started|| None || None

Revision as of 09:57, 7 July 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 (multiple step lookup as starting  with general device)
	2. Use device pointer as identifier for constraint request

	if (t == -1)
		pwrdm_wakeuplat_release_constraint(pwrdm, dev);
	else
		pwrdm_wakeuplat_set_constraint (pwrdm, dev, t);
}
struct powerdomain {
/* existing entries*/
const u32 wakeuplat[NUM_FUNC_PWRST];
static LIST_HEAD(wakeup_lat_constraint_list);
} 
static struct powerdomain core_44xx_pwrdm = {
.wakeuplat = {
  [FUNC_PWRST_OFF] = 50,
  [FUNC_PWRST_OSWR] = 30,
  [FUNC_PWRST_CSWR] = 5,
  [FUNC_PWRST_ON] = 0,
 };
}
pwrdm_wakeuplat_set_constraint (struct powerdomain *pwrdm, stuct device *dev, 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_wakeuplat_release_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_wakeuplat_update_pwrst (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
	
	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 Completed 30-Jun: Completed 23-Jun: On track None
Resolve any compilation issues & test on zoom3 Vibhore New: 07-Jul Orig: 28-Jun In Progress 07-Jul: Faced few issues with test code which had to be developed for testing device latency constraints02-Jul: debugging & functionality testing 23-Jun: None None
Implement interrupt latency API Vibhore 15-Jul Not started None None
Post RFC patches for both parts Vibhore New: 19-Jul, Orig: 30-Jun Not started 2-Jul: delayed, 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