In the SD spec v4.x the SD function extension registers were introduced, together with a new set of commands (CMD48/49 and CMD58/59) to read and write to them. Moreover, in v4.x a new standard function for power management features were added, while in v6.x a new standard function for performance enhancements features were added. This series implement the basics to add support for these new features (and includes some additional preparations in patch 1->7), by adding support for reading and parsing these new SD registers. In the final patch we add support for the SD poweroff notification feature, which also add a function to write to these registers. Note that, there are no HW updates need for the host to support reading/parsing of the these new SD registers. This has been tested with a 64GB Sandisk Extreme PRO UHS-I A2 card. Tests and reviews are of course greatly appreciated! Kind regards Ulf Hansson Ulf Hansson (11): mmc: core: Drop open coding when preparing commands with busy signaling mmc: core: Take into account MMC_CAP_NEED_RSP_BUSY for eMMC HPI commands mmc: core: Re-structure some code in __mmc_poll_for_busy() mmc: core: Extend re-use of __mmc_poll_for_busy() mmc: core: Enable eMMC sleep commands to use HW busy polling mmc: core: Prepare mmc_send_cxd_data() to be re-used for additional cmds mmc: core: Drop open coding in mmc_sd_switch() mmc: core: Parse the SD SCR register for support of CMD48/49 and CMD58/59 mmc: core: Read the SD function extension registers for power management mmc: core: Read performance enhancements registers for SD cards mmc: core: Add support for Power Off Notification for SD cards drivers/mmc/core/core.c | 22 +-- drivers/mmc/core/mmc.c | 43 ++--- drivers/mmc/core/mmc_ops.c | 137 +++++++------- drivers/mmc/core/mmc_ops.h | 10 +- drivers/mmc/core/sd.c | 371 ++++++++++++++++++++++++++++++++++++- drivers/mmc/core/sd_ops.c | 38 +--- include/linux/mmc/card.h | 22 +++ include/linux/mmc/sd.h | 4 + 8 files changed, 504 insertions(+), 143 deletions(-) -- 2.25.1