mbox series

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

Message ID 20210504161222.101536-1-ulf.hansson@linaro.org
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(-)

-- 
2.25.1

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