mbox series

[00/11] Initital support for new power/perf features for SD cards

Message ID 20210504161222.101536-1-ulf.hansson@linaro.org (mailing list archive)
Headers show
Series Initital support for new power/perf features for SD cards | expand

Message

Ulf Hansson May 4, 2021, 4:12 p.m. UTC
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(-)

Comments

Avri Altman May 7, 2021, 6:44 a.m. UTC | #1
> 
> 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!
Echoing an internal discussion about this series:
"... 
That is very good that there will be a support of the extension registers of SD spec .   It may allow existing and future features to be very easily supported by hosts (like existing power off control and future TCG/RPMB related spec which is currently under definition and is going to use those registers as well..).
..."
Therefore for entire series: Acked-by: Avri Altman <avri.altman@wdc.com>
Ulf Hansson May 7, 2021, 7:31 a.m. UTC | #2
On Fri, 7 May 2021 at 08:44, Avri Altman <Avri.Altman@wdc.com> wrote:
>
> >
> > 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!
> Echoing an internal discussion about this series:
> "...
> That is very good that there will be a support of the extension registers of SD spec .   It may allow existing and future features to be very easily supported by hosts (like existing power off control and future TCG/RPMB related spec which is currently under definition and is going to use those registers as well..).

Thanks for sharing. I am happy to help!

> ..."
> Therefore for entire series: Acked-by: Avri Altman <avri.altman@wdc.com>

Thanks for reviewing!

Kind regards
Uffe
Ulf Hansson May 11, 2021, 10:56 a.m. UTC | #3
On Tue, 4 May 2021 at 18:12, Ulf Hansson <ulf.hansson@linaro.org> wrote:
>
> 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(-)

FYI, this series has been applied for next, with some minor
modifications according to review comments. Thanks!

Kind regards
Uffe