Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2170644imm; Mon, 28 May 2018 03:08:45 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrpJVxIHKb50+4zoFqtUQgLpToiP6kIKh2XltoDqPf7Wg7P8L6MDn7myfrV8LU4gQiSwiqv X-Received: by 2002:a63:740c:: with SMTP id p12-v6mr10034889pgc.259.1527502125373; Mon, 28 May 2018 03:08:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527502125; cv=none; d=google.com; s=arc-20160816; b=Fa1ivh/tSdC5S0WB9c1OxmR9orzEio+6hzAbNr+0mz9/8FIeCmDyJHcK2vyEEMbQc9 OZJBhomggG2tZfloh1qieoEnrAb5gcACpc9YP4wRYCqX9nZnDtNnUEtxz35t8lQ8znAK M9UX/skVDACtjg2GN0mpw+y2WT1h8iE+TAftAfuEihGPfMPoZatf7nri4nIuPWBnwiYU WdQ9PjxAYlOOsbuyGNqIf4gpb8hm4u4FYyR/oskv6tCClDMsxF7osbrstpAsT/iEiPWm dZ2FWPyUFaK7n22TjwBSmZxEVKWv+XPlKAWAHRm+sqdJ04eTIXP4mCLFC53MpKGn2ZYx sy8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=rjqfza1182KI0S2N2ySajUldC/tYwXXwwIEsGNnh/mA=; b=DDBIZER/GwQ+5yaCsM6QEj+7ttlaNNcucE9nOwW7u1YbIg35KahkiMsSwbXjiB4ma+ xWpx7ldSMgBdo9/lS1XBO2gjRWyViO+//KMRdp3DGIlFC0b4ck5NKCouL/FJ3Oz4uD75 9enPN8gZqdMGuxELsHsE7yaUS9TInwgvzHNMBFWf0E2jQVSIgn+DGuU3dufkwdcELOe/ T1bwejs9ooHv0Uv2xmq5tZweyviYGzNTW0CHlsSc/DH6XcyMIGzz4HeLO8IpFHDuKm9B KTEwkxc8i/6j4brLyjiAG/0ypIbCbkbHMcOCzKVvorHe6HtmlQfaIm+JKPVvYg2bJXip 7eCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zK0lgpFR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l4-v6si24421127pgn.54.2018.05.28.03.08.30; Mon, 28 May 2018 03:08:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zK0lgpFR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934144AbeE1KIL (ORCPT + 99 others); Mon, 28 May 2018 06:08:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:56160 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933859AbeE1KIH (ORCPT ); Mon, 28 May 2018 06:08:07 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C9EC020876; Mon, 28 May 2018 10:08:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527502086; bh=jawrX0gNgU8AUvZDYGurto7rtwYuQSIGmGDfXOf9dMM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zK0lgpFRfKreGX1ktCviMy2E96za4BTPDrzkP8e23X+J75X+I9R3BOUnRygf6kK43 bsVrzkKZQBqRG8nyXTWlKHdFdYI51TFbG/glHN1VqXW/0AzKVWHQeGHnr9Tuj1qq1w q9ZFM+5xSYIzqzFvbvYFJpczQbigreAADOMu9B2Q= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Grygorii Strashko , Tero Kristo , Tony Lindgren , Sasha Levin Subject: [PATCH 3.18 056/185] ARM: OMAP3: Fix prm wake interrupt for resume Date: Mon, 28 May 2018 12:01:37 +0200 Message-Id: <20180528100055.619591713@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100050.700971285@linuxfoundation.org> References: <20180528100050.700971285@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Tony Lindgren [ Upstream commit d3be6d2a08bd26580562d9714d3d97ea9ba22c73 ] For platform_suspend_ops, the finish call is too late to re-enable wake irqs and we need re-enable wake irqs on wake call instead. Otherwise noirq resume for devices has already happened. And then dev_pm_disarm_wake_irq() has already disabled the dedicated wake irqs when the interrupt triggers and the wake irq is never handled. For devices that are already in PM runtime suspended state when we enter suspend this means that a possible wake irq will never trigger. And this can lead into a situation where a device has a pending padconf wake irq, and the device will stay unresponsive to any further wake irqs. This issue can be easily reproduced by setting serial console log level to zero, letting the serial console idle, and suspend the system from an ssh terminal. Then try to wake up the system by typing to the serial console. Note that this affects only omap3 PRM interrupt as that's currently the only omap variant that does anything in omap_pm_wake(). In general, for the wake irqs to work, the interrupt must have either IRQF_NO_SUSPEND or IRQF_EARLY_RESUME set for it to trigger before dev_pm_disarm_wake_irq() disables the wake irqs. Reported-by: Grygorii Strashko Cc: Tero Kristo Signed-off-by: Tony Lindgren Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- arch/arm/mach-omap2/pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c @@ -231,7 +231,7 @@ static void omap_pm_end(void) cpu_idle_poll_ctrl(false); } -static void omap_pm_finish(void) +static void omap_pm_wake(void) { if (cpu_is_omap34xx()) omap_prcm_irq_complete(); @@ -241,7 +241,7 @@ static const struct platform_suspend_ops .begin = omap_pm_begin, .end = omap_pm_end, .enter = omap_pm_enter, - .finish = omap_pm_finish, + .wake = omap_pm_wake, .valid = suspend_valid_only_mem, };