Some use cases require SMP2P interrupts to wake up the host from suspend. Mark smp2p interrupt as wakeup capable to abort the suspend. Signed-off-by: Deepak Kumar Singh <deesin@xxxxxxxxxxxxxx> --- drivers/soc/qcom/smp2p.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/soc/qcom/smp2p.c b/drivers/soc/qcom/smp2p.c index 2df4883..f8659b0 100644 --- a/drivers/soc/qcom/smp2p.c +++ b/drivers/soc/qcom/smp2p.c @@ -18,6 +18,7 @@ #include <linux/soc/qcom/smem.h> #include <linux/soc/qcom/smem_state.h> #include <linux/spinlock.h> +#include <linux/pm_wakeirq.h> /* * The Shared Memory Point to Point (SMP2P) protocol facilitates communication @@ -538,9 +539,19 @@ static int qcom_smp2p_probe(struct platform_device *pdev) goto unwind_interfaces; } + ret = device_init_wakeup(&pdev->dev, true); + if (ret) + goto unwind_interfaces; + + ret = dev_pm_set_wake_irq(&pdev->dev, irq); + if (ret) + goto set_wakeup_failed; return 0; +set_wakeup_failed: + device_init_wakeup(&pdev->dev, false); + unwind_interfaces: list_for_each_entry(entry, &smp2p->inbound, node) irq_domain_remove(entry->domain); -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project