Improve eMMC Power Management Support

Registered by Deepak Saxena on 2012-11-15

The current eMMC and SD card stack in the Linux kernel is missing full support of the power management features of the eMMC specification. In particular:

* Power Off Notify support and a proper shutdown sequence.
 *Ensuring the proper voltage (VCC) level is set on the card after a suspend/resume cycle
* Full support for VCCQ/IO - voltage change
* Implement support to do background operations at idle time. Useful for BKOPS, CACHE ctrl etc.

Blueprint information

Status:
Started
Approver:
Deepak Saxena
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Ulf Hansson
Definition:
Approved
Series goal:
Accepted for kernel-merge-window
Implementation:
Good progress
Milestone target:
milestone icon 3.13
Started by
Jakub Pavelek on 2013-01-09

Whiteboard

Meta:
Roadmap id: CARD-202
Headline: Power Management improvements for eMMC have been upstreamed
Acceptance:
   * Patches merged into MMC tree
   * System is able to pass 100 suspend/resume cycles with above features integrated into kernel with no degradation to eMMC functionality

[jakub-pavelek 2013-02-07] Moving from 3.9 to 3.10 based on the size of backlog
[jakub-pavelek 2013-03-25] Moving from 3.10 to 3.11 based on the size of backlog
[jakub-pavelek 2013-08-26] Moving from 3.11 t 3.13 to reflect the reality. Ulf is back on it - HURRAY - doing updates, date might change still
[jakub-pavelek 2013-09-17] Blueprint obsoleted, moving engineering over to JIRA in https://cards.linaro.org/browse/KWG-107

(?)

Work Items

Work items for 13.01:
Prepare patches for fixup I/O voltage switch in protocol layer: DONE
Prepare patches for adapt sdhci host driver to new sequence for how I/O voltage switch is done: DONE

Work items for 13.02:
Merge patches for fixup I/O voltage switch in protocol layer to Chris (Feb 13): DONE
Merge patches for adapt sdhci host driver to new sequence for how I/O voltage switch is done to Chris (Feb 13): DONE
Prepare patches for mmci host driver to support I/O voltage switch procedure (Feb 11): DONE

Work items for 13.03:
Merge patches for fixup I/O voltage switch in protocol layer to Torvalds (March 12): DONE
Merge patches for adapt sdhci host driver to new sequence for how I/O voltage switch is done to Torvalds (March 12): DONE
Prepare patches to add a skeleton for doing background operations at idle time, based on runtime PM (March 12): DONE

Work items for 13.04:
Merge patches to add a skeleton for doing background operations at idle time, based on runtime PM to Chris: DONE

Work items for 13.05:
Merge patches for mmci host driver to support I/O voltage switch procedure to Russell: DONE
Review patches for idle time BKOPS: DONE
Prepare patches to implement idle time aggressive card power shutdown: DONE
Merge patches to implement idle time aggressive card power shutdown to Chris: DONE

Work items for 13.06:
Prepare patches for reworking suspend to be more integrated in the protocol layer: DONE
Merge patches for reworking suspend to be more integrated in the protocol layer: DONE
Prepare patches for adapt shutdown to use similar cmds as for suspend in the protocol layer: DONE
Merge patches for adapt shutdown to use similar cmds as for suspend in the protocol layer: DONE

Work items for 13.09:
Investigate the need for implementing idle time CACHE ctrl: TODO
Prepare patches to fixup rescan and suspend/resume sequence of mmc/sd/sdio with regards how to set VCC voltage level: DONE
Merge patches to fixup rescan and suspend/resume sequence of mmc/sd/sdio with regards how to set VCC voltage level: TODO
Support Maya Erez in reviewing patches for idle time BKOPS: TODO

This blueprint contains Public information 
Everyone can see this information.