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

Yoshihiro Shimoda
2020-06-26T09:32:31Z

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(-)

--
2.7.4