[tracking] cpuidle: Upstream the driver for the ST-E u8500

Registered by Daniel Lezcano

The ST-E snowball has a cpuidle driver out-of-tree. Rework the driver and push it upstream.

Blueprint information

Status:
Complete
Approver:
Amit Kucheria
Priority:
Low
Drafter:
Daniel Lezcano
Direction:
Approved
Assignee:
Rickard Andersson
Definition:
Obsolete
Series goal:
Accepted for trunk
Implementation:
Good progress
Milestone target:
milestone icon backlog
Started by
Mounir Bsaibes
Completed by
Serge Broslavsky

Related branches

Sprints

Whiteboard

[dzin, Oct 22, 2012] Slow, blocked on blocked by ST-E kernel team upstreaming runtime PM support for their platform. Moved roadmap ID from PMWG2011-CPUIDLE-UPSTREAMING to CARD-191. Retarget to 2012.11

Meta:
Headline: Mainline the cpuidle driver for u8500
Acceptance: cpuidle driver for u8500 accepted upstream, power-qa cpuidle tests pass without regression
Roadmap id: PMWG2011-CPUIDLE-UPSTREAMING

Study coupled cpu patchset for cpuidle:
=> too overkill for the ux500 cpuidle driver

Do power energy saving measurement with ARM retention:
=> Roughly measured between 7mA and 14 mA of power saving

Publish the cpuidle driver to git.linaro.org:
=> git.linaro.org/gitweb?p=people/dlezcano/linux-next.git;a=summary

Status 2012/04/24: Linus W. accepted WFI+ARM retention driver in his tree, will go in for 3.5

Common save and restore is not needed for ApSleep but for ApDeepSleep

05/28/2012 : AMBA serial driver and serial core must be checked against PM (especially pm_runtime) and cleanup according the uart save and restore routine needed for ApSleep. The current uart's save and restore for ApSleep is hacked, duplicated and workarounds the serial core/pl011 suspend/resume routine.

04/10/12: Hongbo to help with fixes to various peripheral drivers to allow ApSleep and deeper states.

28/11/12: As per discussion at Connect, Copenhagen, Rickard will continue the upstreaming effort for ApSleep and other optimisations for ux500 cpuidle driver. He may choose to use this blueprint and keep it up to date or not.

[daniel-lezcano] 02/01/13 : As Rickard is handling the upstreaming, I removed my name from the work items

[ototo, 02/01/2013] As this blueprint is used to track things done by Rickard (who agreed to help with upstreaming), updating the title to include "[tracking]" tag.

(?)

Work Items

Work items for 2012.01:
[daniel-lezcano] : respin the driver on top of linux-next: DONE

Work items for 2012.02:
[daniel-lezcano] : Get PRCMU documentation: DONE
[daniel-lezcano] : Check out-of-tree prcmu driver against documentation: DONE
[daniel-lezcano] : Study coupled cpu patchset for cpuidle: DONE
[daniel-lezcano] : Write prcmu routines to decouple gic from prcmu: DONE
[daniel-lezcano] : Submit upstream gic decoupling: DONE
[daniel-lezcano] : Write gic pending interrupts: DONE
[daniel-lezcano] : Submit gic pending interrupts upstream: DONE
[daniel-lezcano] : Write gic settings copy: DONE
[daniel-lezcano] : Submit gic settings copy upstream: DONE
[daniel-lezcano] : Write prcmu pending interrupts: DONE
[daniel-lezcano] : Submit prcmu pending interrupts upstream: DONE
[daniel-lezcano] : Write a simple cpuidle driver with WFI: DONE
[daniel-lezcano] : Implement the ARM retention state: DONE

Work items for 2012.03:
[daniel-lezcano] : respin prcmu driver on top of linux-next: DONE
[daniel-lezcano] : Do power energy saving measurement with ARM retention: DONE
[daniel-lezcano] : Publish the cpuidle driver to git.linaro.org: DONE

Work items for 2012.04:
[daniel-lezcano] : Submit for mainstream WFI state: DONE
[daniel-lezcano] : Submit for mainstream ARM retention: DONE

Work items for 2012.05:
[daniel-lezcano] : Study UART upstream status vs PM: DONE
[daniel-lezcano] : Study DMA upstream status vs PM: DONE
[daniel-lezcano] : Study ICM upstream status vs PM: DONE
[daniel-lezcano] : Study STM APE upstream status vs PM: DONE
[daniel-lezcano] : Study TPIU upstream status vs PM: DONE
[daniel-lezcano] : Study PRCC upstream status vs PM: DONE

Work items for 2013.05:
[daniel-lezcano] : Implement save and restore for amba-pl011 : TODO
[daniel-lezcano] : Implement pm-runtime for amba-pl011 : TODO

Work items for backlog:
Integrate Lorenzo's common save & restore work with u8500 ApSleep code: TODO
Switch to RTC timer and manage timer cpu affinity: TODO
Change notifier call chain: INPROGRESS
Implement ApSleep state: TODO
upstream this new idle state: TODO
Fix UART driver to allow ApSleep: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.