From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Tony Lindgren <tony@atomide.com>, Dave Gerlach <d-gerlach@ti.com>,
Suman Anna <s-anna@ti.com>, Sasha Levin <sashal@kernel.org>,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: [PATCH AUTOSEL 5.10 66/88] ARM: OMAP2+: Block suspend for am3 and am4 if PM is not configured
Date: Wed, 14 Jul 2021 15:42:41 -0400 [thread overview]
Message-ID: <20210714194303.54028-66-sashal@kernel.org> (raw)
In-Reply-To: <20210714194303.54028-1-sashal@kernel.org>
From: Tony Lindgren <tony@atomide.com>
[ Upstream commit 093a474ce10d8ea3db3ef2922aca5a38f34bab1b ]
If the PM related modules are not loaded and PM firmware not configured,
the system suspend fails to resume. Let's fix this by adding initial
platform_suspend_ops to block suspend and warn about missing modules.
When pm33xx and wkup_m3_ipc have been loaded and m3 coprocessor booted
with it's firmware, pm33xx sets up working platform_suspend_ops. Note
that we need to configure at least PM_SUSPEND_STANDBY to have
suspend_set_ops().
Cc: Dave Gerlach <d-gerlach@ti.com>
Cc: Suman Anna <s-anna@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/arm/mach-omap2/pm33xx-core.c | 40 +++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/arch/arm/mach-omap2/pm33xx-core.c b/arch/arm/mach-omap2/pm33xx-core.c
index 56f2c0bcae5a..bf0d25fd2cea 100644
--- a/arch/arm/mach-omap2/pm33xx-core.c
+++ b/arch/arm/mach-omap2/pm33xx-core.c
@@ -8,6 +8,7 @@
#include <linux/cpuidle.h>
#include <linux/platform_data/pm33xx.h>
+#include <linux/suspend.h>
#include <asm/cpuidle.h>
#include <asm/smp_scu.h>
#include <asm/suspend.h>
@@ -324,6 +325,44 @@ static struct am33xx_pm_platform_data *am33xx_pm_get_pdata(void)
return NULL;
}
+#ifdef CONFIG_SUSPEND
+/*
+ * Block system suspend initially. Later on pm33xx sets up it's own
+ * platform_suspend_ops after probe. That depends also on loaded
+ * wkup_m3_ipc and booted am335x-pm-firmware.elf.
+ */
+static int amx3_suspend_block(suspend_state_t state)
+{
+ pr_warn("PM not initialized for pm33xx, wkup_m3_ipc, or am335x-pm-firmware.elf\n");
+
+ return -EINVAL;
+}
+
+static int amx3_pm_valid(suspend_state_t state)
+{
+ switch (state) {
+ case PM_SUSPEND_STANDBY:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+static const struct platform_suspend_ops amx3_blocked_pm_ops = {
+ .begin = amx3_suspend_block,
+ .valid = amx3_pm_valid,
+};
+
+static void __init amx3_block_suspend(void)
+{
+ suspend_set_ops(&amx3_blocked_pm_ops);
+}
+#else
+static inline void amx3_block_suspend(void)
+{
+}
+#endif /* CONFIG_SUSPEND */
+
int __init amx3_common_pm_init(void)
{
struct am33xx_pm_platform_data *pdata;
@@ -337,6 +376,7 @@ int __init amx3_common_pm_init(void)
devinfo.size_data = sizeof(*pdata);
devinfo.id = -1;
platform_device_register_full(&devinfo);
+ amx3_block_suspend();
return 0;
}
--
2.30.2
next prev parent reply other threads:[~2021-07-14 19:52 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-14 19:41 [PATCH AUTOSEL 5.10 01/88] ARM: dts: gemini: rename mdio to the right name Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 02/88] ARM: dts: gemini: add device_type on pci Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 03/88] ARM: dts: rockchip: Fix thermal sensor cells o rk322x Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 04/88] ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288 Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 05/88] arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 06/88] ARM: dts: rockchip: Fix the timer clocks order Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 07/88] ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 08/88] ARM: dts: rockchip: Fix power-controller node names for rk3066a Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 09/88] ARM: dts: rockchip: Fix power-controller node names for rk3188 Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 10/88] ARM: dts: rockchip: Fix power-controller node names for rk3288 Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 11/88] arm64: dts: rockchip: Fix power-controller node names for px30 Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 12/88] arm64: dts: rockchip: Fix power-controller node names for rk3328 Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 13/88] arm64: dts: rockchip: Fix power-controller node names for rk3399 Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 14/88] reset: ti-syscon: fix to_ti_syscon_reset_data macro Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 15/88] ARM: brcmstb: dts: fix NAND nodes names Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 16/88] ARM: Cygnus: " Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 17/88] ARM: NSP: " Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 18/88] ARM: dts: BCM63xx: Fix " Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 19/88] ARM: dts: Hurricane 2: " Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 20/88] ARM: dts: imx25-pinfunc: Fix gpio function name for pads GPIO_[A-F] Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 21/88] ARM: dts: exynos: align Broadcom WiFi with dtschema Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 22/88] ARM: dts: imx6: phyFLEX: Fix UART hardware flow control Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 23/88] ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info Sasha Levin
2021-07-14 19:41 ` [PATCH AUTOSEL 5.10 24/88] arm64: dts: rockchip: fix regulator-gpio states array Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 25/88] ARM: dts: ux500: Fix interrupt cells Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 26/88] ARM: dts: ux500: Rename gpio-controller node Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 27/88] ARM: dts: ux500: Fix orientation of accelerometer Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 28/88] ARM: dts: imx6dl-riotboard: configure PHY clock and set proper EEE value Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 29/88] rtc: mxc_v2: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 30/88] arm64: dts: renesas: beacon: Fix USB extal reference Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 31/88] arm64: dts: renesas: beacon: Fix USB ref clock references Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 32/88] kbuild: sink stdout from cmd for silent build Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 33/88] ARM: dts: am335x: align GPIO hog names with dt-schema Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 34/88] ARM: dts: am437x: align gpio " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 35/88] ARM: dts: omap3: " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 36/88] ARM: dts: omap5-board-common: " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 37/88] ARM: dts: dra7x-evm: Align GPIO " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 38/88] ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 39/88] ARM: dts: am437x-gp-evm: " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 40/88] ARM: dts: am335x: " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 41/88] ARM: dts: OMAP2+: Replace underscores in sub-mailbox node names Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 42/88] arm64: dts: ti: k3-am654x/j721e/j7200-common-proc-board: Fix MCU_RGMII1_TXC direction Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 43/88] ARM: tegra: wm8903: Fix polarity of headphones-detection GPIO in device-trees Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 44/88] ARM: tegra: nexus7: Correct 3v3 regulator GPIO of PM269 variant Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 45/88] arm64: dts: qcom: msm8996: Make CPUCC actually probe (and work) Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 46/88] arm64: dts: qcom: sc7180: Move rmtfs memory region Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 47/88] ARM: dts: stm32: Remove extra size-cells on dhcom-pdk2 Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 48/88] ARM: dts: stm32: Fix touchscreen node " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 49/88] ARM: dts: stm32: fix stm32mp157c-odyssey card detect pin Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 50/88] ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 51/88] ARM: dts: stm32: fix RCC node name on stm32f429 MCU Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 52/88] ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 53/88] memory: tegra: Fix compilation warnings on 64bit platforms Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 54/88] firmware: arm_scmi: Add SMCCC discovery dependency in Kconfig Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 55/88] firmware: arm_scmi: Fix the build when CONFIG_MAILBOX is not selected Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 56/88] ARM: dts: bcm283x: Fix up MMC node names Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 57/88] ARM: dts: bcm283x: Fix up GPIO LED " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 58/88] arm64: dts: juno: Update SCPI nodes as per the YAML schema Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 59/88] ARM: dts: rockchip: fix supply properties in io-domains nodes Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 60/88] ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 61/88] ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15 Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 62/88] ARM: dts: stm32: fix the Odyssey SoM eMMC VQMMC supply Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 63/88] ARM: dts: stm32: Drop unused linux,wakeup from touchscreen node on DHCOM SoM Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 64/88] ARM: dts: stm32: Rename spi-flash/mx66l51235l@N to flash@N " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 65/88] ARM: dts: stm32: fix stpmic node for stm32mp1 boards Sasha Levin
2021-07-14 19:42 ` Sasha Levin [this message]
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 67/88] soc/tegra: fuse: Fix Tegra234-only builds Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 68/88] firmware: tegra: bpmp: " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 69/88] arm64: dts: ls208xa: remove bus-num from dspi node Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 70/88] arm64: dts: imx8mq: assign PCIe clocks Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 71/88] thermal/core: Correct function name thermal_zone_device_unregister() Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 72/88] thermal/drivers/rcar_gen3_thermal: Do not shadow rcar_gen3_ths_tj_1 Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 73/88] thermal/drivers/imx_sc: Add missing of_node_put for loop iteration Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 74/88] thermal/drivers/sprd: " Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 75/88] kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 76/88] arch/arm64/boot/dts/marvell: fix NAND partitioning scheme Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 77/88] rtc: max77686: Do not enforce (incorrect) interrupt trigger type Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 78/88] scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8 Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 79/88] scsi: libsas: Add LUN number check in .slave_alloc callback Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 80/88] scsi: be2iscsi: Fix some missing space in some messages Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 81/88] scsi: libfc: Fix array index out of bound exception Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 82/88] scsi: qedf: Add check to synchronize abort and flush Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 83/88] sched/fair: Fix CFS bandwidth hrtimer expiry type Sasha Levin
2021-07-14 19:42 ` [PATCH AUTOSEL 5.10 84/88] perf/x86/intel/uncore: Clean up error handling path of iio mapping Sasha Levin
2021-07-14 19:43 ` [PATCH AUTOSEL 5.10 85/88] thermal/core/thermal_of: Stop zone device before unregistering it Sasha Levin
2021-07-14 19:43 ` [PATCH AUTOSEL 5.10 86/88] s390/traps: do not test MONITOR CALL without CONFIG_BUG Sasha Levin
2021-07-14 19:43 ` [PATCH AUTOSEL 5.10 87/88] s390: introduce proper type handling call_on_stack() macro Sasha Levin
2021-07-14 19:43 ` [PATCH AUTOSEL 5.10 88/88] cifs: prevent NULL deref in cifs_compose_mount_options() Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210714194303.54028-66-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=d-gerlach@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=s-anna@ti.com \
--cc=stable@vger.kernel.org \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox