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