mbox series

[PATCH/RFC,v4,0/4] treewide: add regulator condition on _mmc_suspend()

Message ID 1593163942-5087-1-git-send-email-yoshihiro.shimoda.uh@renesas.com (mailing list archive)
Headers show
Series treewide: add regulator condition on _mmc_suspend() | expand

Message

Yoshihiro Shimoda June 26, 2020, 9:32 a.m. UTC
The regulator-fixed driver is possible to be off by firmware
like PSCI while the system is suspended. If a consumer could get
such a condition from regulator_is_enabled(), it's useful by
consumers.

The patch series alllows MMC subsystem to get the disabled condition
and then eMMC device condition of my environment (r8a77951-salvator-xs)
will be better than before.
 before:
  - enter sleep mode and then turn the vmmc and vqmmc off without
    any Power Off Notification.
 after:
  - call mmc_poweroff_nofity() and then turn the vmmc and vqmmc off.

We can apply each patch to each subsystem without any dependency.

Note that v5.8-rc2 with r8a77951-salvator-xs seems to cause panic from
PCI driver when the system is suspended. So, I disabled the PCI
devices when I tested this patch series.

Changes from v3:
 - Modify regulator subsytem and regulator/fixed driver.
 - Use regulator_is_enabled() instead of firmware API.
 - Update R-Car Gen3 related dts files for the reference.
   But, I have only tested on r8a779{5,61}-salvaltor-xs.dts.
 https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=306281

Changes from v2:
 - Fix typo of function name in patch2.
 - Remove RFC.
 https://patchwork.kernel.org/project/linux-renesas-soc/list/?series=305523

Changes from v1:
 - Use pm_suspend_via_firmware() API instead of pm_suspend_target_state.
 - Modify the psci driver to call pm_set_suspend_via_firmware.
 https://patchwork.kernel.org/patch/11557505/

Yoshihiro Shimoda (4):
  regulator: core: add prepare and resume_early
  regulator: fixed: add regulator_ops members for suspend/resume
  mmc: core: Call mmc_poweroff_nofity() if regulators are disabled
  arm64: dts: renesas: add regulator-off-in-suspend property for eMMC

 arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts   | 10 ++++--
 arch/arm64/boot/dts/renesas/r8a77980-condor.dts  | 10 ++++--
 arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts   | 10 ++++--
 arch/arm64/boot/dts/renesas/r8a77995-draak.dts   |  9 ++++-
 arch/arm64/boot/dts/renesas/salvator-common.dtsi | 10 ++++--
 arch/arm64/boot/dts/renesas/ulcb.dtsi            | 10 ++++--
 drivers/mmc/core/mmc.c                           | 16 ++++++++-
 drivers/regulator/core.c                         | 42 ++++++++++++++++++++++++
 drivers/regulator/fixed.c                        | 29 ++++++++++++++++
 include/linux/regulator/driver.h                 |  6 ++++
 10 files changed, 140 insertions(+), 12 deletions(-)