Received: by 10.213.65.68 with SMTP id h4csp299390imn; Wed, 21 Mar 2018 19:24:35 -0700 (PDT) X-Google-Smtp-Source: AG47ELuCyETE3TMoBkWPgBgs50CHkpfCFQ4yzcrYckCCLZdkD2krEiFgeklCYYsjoxlnRkuaaIzX X-Received: by 10.98.70.8 with SMTP id t8mr4598068pfa.185.1521685475425; Wed, 21 Mar 2018 19:24:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521685475; cv=none; d=google.com; s=arc-20160816; b=gEkaW8BMGkwsbqYCoDDNJrbHNd9d7H0uKxzsRB1i58urbQXlfvhc3Tt+jtQJQ/nA75 pbbyZoYxF0bT149vTUHOPEBUQIsodaLdVLAyHhsNWrrNQbFYedBYHkbbkfKZ2UO/aB0G 9U/jU4KUrtV8DeMVYIbgROe8JrvBp+Fhlj3WGSVA4inJo6DZiq1EOz1HhP6ACREtByec 8JzWxfa3hVKmQxS3a/UQGBKwRuPvcuHZL4JX+X7BTfA5sTOxV/iPTXJGLW7Da9NREbVp c7Y9GPIBiH0I2a2VwIVfrZhV2D8XzfIn4bvnK6Ez1SQefumPmjoLZNhQt923kZvB63nZ V5vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=nO88oalX/RMkBaDt/to0GuaGda2iN/vvTBSSLM7xxwU=; b=jeGkJJkZU3YGXzj3fYvb0/04bHYHqWeP7d2JijhQrgPUwQ+mcADrr0ivkK1liMCb/I b9NBPfB16x4cFwflSJtfMOLtMbPa0BqEp3wTT1DB+WPo1d2KQBfu5DgLXhcuLyv/5W1W BkBth02QjGDOX3KspVIxaJffKbslcQPlMilLqei7jmrzWoCU44SouutmT1y+R5kIY2fd Pvk8SHJZdHPmPMFK8CdqacaM9ZYmrXvTJgCwROud38nI5oBloGco/6JVjFq8JAvHImwJ hl804Jx1zCbjD/Ue5Tv53p9W9qirCEUcaH/4Ul9wYvXwviXOom62CyZ5JzqQ/j+sYsWt G48Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FpqDbiIH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m10-v6si2348420pll.175.2018.03.21.19.24.21; Wed, 21 Mar 2018 19:24:35 -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=@linaro.org header.s=google header.b=FpqDbiIH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752021AbeCVCXG (ORCPT + 99 others); Wed, 21 Mar 2018 22:23:06 -0400 Received: from mail-oi0-f67.google.com ([209.85.218.67]:44733 "EHLO mail-oi0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751976AbeCVCXD (ORCPT ); Wed, 21 Mar 2018 22:23:03 -0400 Received: by mail-oi0-f67.google.com with SMTP id 23-v6so6089343oir.11 for ; Wed, 21 Mar 2018 19:23:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=nO88oalX/RMkBaDt/to0GuaGda2iN/vvTBSSLM7xxwU=; b=FpqDbiIH2juH4X/pSgqOYc9oBZ0MlfmgivKyDVCLvczgh72Z+wkd7XSA0A8lMGXYmw EG5GARjmsIqWMb7WG6hcLwQXYhCDdpHtzRaXW3buv7SdPOFyR63Stsx3FJzP+ByX2xTa 4N8jAt3J9OPHi7kn295yS3Eg9VHuUYi6jHFUU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=nO88oalX/RMkBaDt/to0GuaGda2iN/vvTBSSLM7xxwU=; b=WOz/K1naCz84GbzEg58o7j2gQsDkUJlVegYt1utFErxvODRjt6RI9q1dCEgykQDa0m bK4NMf/ODoUISLXzjQj0tW+BHFajlRHsu4q7W+Z4JofqiUHLzPs8QQklr+LxAw7sIZzB B9WZAQK3nRoVOtqN5lJGaVkdSEaQCj+uBMbnmPx1xr55V8G1yZTiTlddVG1yXDgX1pH4 RLkFroYlLaFqS2vzWDvghrUVF9a/J7qfdWde2C1grjPPS1gUil4iZfDfTvWEofd4JR4x dPpPIgqX09HiWpeaYJ9u0HMFX7zEtzNKEjwsAW3Q0yEoyEZv4KODqnC4vjaMxeK6VOH2 X9aA== X-Gm-Message-State: AElRT7EALzOUPDrj6AafuBnDgJFkepyUtkemQaEL9yMZiS7zKd/zMgVb bKjyAVo8e1fA4t+6ILUBGnEErLgajXP6TeKmN4SAzQ== X-Received: by 10.202.232.69 with SMTP id f66mr12402906oih.177.1521685382630; Wed, 21 Mar 2018 19:23:02 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:6005:0:0:0:0:0 with HTTP; Wed, 21 Mar 2018 19:23:02 -0700 (PDT) In-Reply-To: <20180321140422.GA10700@amd> References: <7ff55372818461feed4b0550d5f88edce2cc7d41.1521631678.git.baolin.wang@linaro.org> <20180321140422.GA10700@amd> From: Baolin Wang Date: Thu, 22 Mar 2018 10:23:02 +0800 Message-ID: Subject: Re: [PATCH 1/2] ACPI / PM: Use register_reboot_notifier() instead of pm_power_off_prepare To: Pavel Machek Cc: rjw@rjwysocki.net, Len Brown , Andrey Smirnov , Andrew Morton , Mark Brown , Arnd Bergmann , linux-acpi@vger.kernel.org, LKML , Linux PM list 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 Hi Pavel, On 21 March 2018 at 22:04, Pavel Machek wrote: > On Wed 2018-03-21 19:30:16, Baolin Wang wrote: >> We can register one notifier through register_reboot_notifier() function to >> prepare to power off the system, then we can remove the 'pm_power_off_prepare' >> hook in following patch. >> >> Signed-off-by: Baolin Wang >> --- >> Note: Please help to review carefully, since I have no platform to test >> this conversion. >> >> I saw there is another reboot notifier in this driver, I am not sure the >> orders between them. I can change the priority of notifier to keep their >> orders if it is necessary. > > I don't understand why this is good idea... and you should really test > it. I'm sure you can find PC or notebook somewhere... I want to test it, but I have no opensource board with x86 architecture. But I will try to find one or ask other guys to help to test it. Thanks for your comments. >> drivers/acpi/sleep.c | 22 ++++++++++++++++------ >> 1 file changed, 16 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c >> index 46cde091..b3de894 100644 >> --- a/drivers/acpi/sleep.c >> +++ b/drivers/acpi/sleep.c >> @@ -1229,14 +1229,24 @@ static void acpi_sleep_hibernate_setup(void) >> static inline void acpi_sleep_hibernate_setup(void) {} >> #endif /* !CONFIG_HIBERNATION */ >> >> -static void acpi_power_off_prepare(void) >> +static int acpi_reboot_notify(struct notifier_block *this, unsigned long code, >> + void *x) >> { >> - /* Prepare to power off the system */ >> - acpi_sleep_prepare(ACPI_STATE_S5); >> - acpi_disable_all_gpes(); >> - acpi_os_wait_events_complete(); >> + if (code == SYSTEM_POWER_OFF) { >> + /* Prepare to power off the system */ >> + acpi_sleep_prepare(ACPI_STATE_S5); >> + acpi_disable_all_gpes(); >> + acpi_os_wait_events_complete(); >> + } >> + >> + return NOTIFY_DONE; >> } >> >> +static struct notifier_block acpi_reboot_notifier = { >> + .notifier_call = acpi_reboot_notify, >> + .priority = 0, >> +}; >> + >> static void acpi_power_off(void) >> { >> /* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */ >> @@ -1261,7 +1271,7 @@ int __init acpi_sleep_init(void) >> >> if (acpi_sleep_state_supported(ACPI_STATE_S5)) { >> sleep_states[ACPI_STATE_S5] = 1; >> - pm_power_off_prepare = acpi_power_off_prepare; >> + register_reboot_notifier(&acpi_reboot_notifier); >> pm_power_off = acpi_power_off; >> } else { >> acpi_no_s5 = true; > > -- > (english) http://www.livejournal.com/~pavelmachek > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- Baolin.wang Best Regards