[tracking] cpuidle: Upstream the driver for the ST-E u8500
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:
-
backlog
- Started by
- Mounir Bsaibes
- Completed by
- Serge Broslavsky
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-
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-
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.
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.