linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sasha Levin <sashal@kernel.org>, Dave Gerlach <d-gerlach@ti.com>,
	Tony Lindgren <tony@atomide.com>,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: [PATCH AUTOSEL 5.12 076/102] ARM: OMAP2+: Block suspend for am3 and am4 if PM is not configured
Date: Wed, 14 Jul 2021 15:40:09 -0400	[thread overview]
Message-ID: <20210714194036.53141-76-sashal@kernel.org> (raw)
In-Reply-To: <20210714194036.53141-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


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-07-14 21:24 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210714194036.53141-1-sashal@kernel.org>
2021-07-14 19:38 ` [PATCH AUTOSEL 5.12 003/102] ARM: dts: rockchip: Fix thermal sensor cells o rk322x Sasha Levin
2021-07-14 19:38 ` [PATCH AUTOSEL 5.12 004/102] ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288 Sasha Levin
2021-07-14 19:38 ` [PATCH AUTOSEL 5.12 005/102] arm64: dts: rockchip: Use only supported PCIe link speed on rk3399 Sasha Levin
2021-07-14 19:38 ` [PATCH AUTOSEL 5.12 006/102] arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 007/102] ARM: dts: rockchip: Fix the timer clocks order Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 008/102] ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 009/102] ARM: dts: rockchip: Fix power-controller node names for rk3066a Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 010/102] ARM: dts: rockchip: Fix power-controller node names for rk3188 Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 011/102] ARM: dts: rockchip: Fix power-controller node names for rk3288 Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 012/102] arm64: dts: rockchip: Fix power-controller node names for px30 Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 013/102] arm64: dts: rockchip: Fix power-controller node names for rk3328 Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 014/102] arm64: dts: rockchip: Fix power-controller node names for rk3399 Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 016/102] ARM: dts: BCM5301X: Fix NAND nodes names Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 017/102] ARM: brcmstb: dts: fix " Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 018/102] ARM: Cygnus: " Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 019/102] ARM: NSP: " Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 021/102] ARM: dts: Hurricane 2: Fix " Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 022/102] ARM: dts: BCM5301X: Fix pinmux subnodes names Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 023/102] soc: bcm: brcmstb: remove unused variable 'brcmstb_machine_match' Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 024/102] ARM: dts: imx25-pinfunc: Fix gpio function name for pads GPIO_[A-F] Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 025/102] ARM: dts: exynos: align Broadcom WiFi with dtschema Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 026/102] soc: mediatek: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 027/102] ARM: dts: imx6: phyFLEX: Fix UART hardware flow control Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 028/102] ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 029/102] arm64: dts: rockchip: fix regulator-gpio states array Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 030/102] ARM: dts: ux500: Fix interrupt cells Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 031/102] ARM: dts: ux500: Rename gpio-controller node Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 032/102] ARM: dts: ux500: Fix orientation of accelerometer Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 033/102] ARM: dts: ux500: Fix some compatible strings Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 034/102] ARM: dts: imx6dl-riotboard: configure PHY clock and set proper EEE value Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 035/102] ARM: dts: ux500: Fix orientation of Janice accelerometer Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 050/102] arm64: dts: ti: k3-am654x/j721e/j7200-common-proc-board: Fix MCU_RGMII1_TXC direction Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 055/102] ARM: dts: stm32: Remove extra size-cells on dhcom-pdk2 Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 056/102] ARM: dts: stm32: Fix touchscreen node " Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 057/102] ARM: dts: stm32: fix stm32mp157c-odyssey card detect pin Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 058/102] ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 059/102] ARM: dts: stm32: fix RCC node name on stm32f429 MCU Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 060/102] ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 062/102] firmware: arm_scmi: Add SMCCC discovery dependency in Kconfig Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 063/102] firmware: arm_scmi: Fix the build when CONFIG_MAILBOX is not selected Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 064/102] ARM: dts: bcm283x: Fix up MMC node names Sasha Levin
2021-07-14 19:39 ` [PATCH AUTOSEL 5.12 065/102] ARM: dts: bcm283x: Fix up GPIO LED " Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 067/102] arm64: dts: juno: Update SCPI nodes as per the YAML schema Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 068/102] ARM: dts: rockchip: fix supply properties in io-domains nodes Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 069/102] ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 070/102] ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15 Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 071/102] ARM: dts: stm32: fix the Odyssey SoM eMMC VQMMC supply Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 072/102] ARM: dts: stm32: Drop unused linux, wakeup from touchscreen node on DHCOM SoM Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 073/102] ARM: dts: stm32: Rename eth@N to ethernet@N " Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 074/102] ARM: dts: stm32: Rename spi-flash/mx66l51235l@N to flash@N " Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 075/102] ARM: dts: stm32: fix stpmic node for stm32mp1 boards Sasha Levin
2021-07-14 19:40 ` Sasha Levin [this message]
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 079/102] arm64: dts: rockchip: Update RK3399 PCI host bridge window to 32-bit address memory Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 080/102] arm64: dts: ls208xa: remove bus-num from dspi node Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 081/102] arm64: dts: imx8mn-beacon-som: Assign PMIC clock Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 082/102] arm64: dts: imx8mq: assign PCIe clocks Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 085/102] thermal/drivers/imx_sc: Add missing of_node_put for loop iteration Sasha Levin
2021-07-14 19:40 ` [PATCH AUTOSEL 5.12 090/102] arch/arm64/boot/dts/marvell: fix NAND partitioning scheme 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=20210714194036.53141-76-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=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;
as well as URLs for NNTP newsgroup(s).