Improve eMMC Power Management Support

Registered by Deepak Saxena

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

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.