From: Guenter Roeck <linux@roeck-us.net>
To: linux-kernel@vger.kernel.org
Cc: adi-buildroot-devel@lists.sourceforge.net,
devel@driverdev.osuosl.org, devicetree@vger.kernel.org,
lguest@lists.ozlabs.org, linux-acpi@vger.kernel.org,
linux-alpha@vger.kernel.org, linux-am33-list@redhat.com,
linux-cris-kernel@axis.com, linux-efi@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-m32r-ja@ml.linux-m32r.org,
linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
linux-tegra@vger.kernel.org, linux-xtensa@linux-xtensa.org,
openipmi-developer@lists.sourceforge.net,
user-mode-linux-devel@lists.sourceforge.net,
linux-arm-kernel@lists.infradead.org,
linux-c6x-dev@linux-c6x.org, linux-ia64@vger.kernel.org,
linux-m68k@lists.linux-m68k.org, linux-metag@vger.kernel.org,
linux-mips@linux-mips.org, linux-parisc@vger.kernel.org,
linux-pm@vger.kernel.org, linux-sh@vger.kernel.org,
xen-devel@lists.xenproject.org,
Guenter Roeck <linux@roeck-us.net>,
Sebastian
Subject: [PATCH 23/44] power/reset: qnap-poweroff: Register with kernel poweroff handler
Date: Mon, 6 Oct 2014 22:28:25 -0700 [thread overview]
Message-ID: <1412659726-29957-24-git-send-email-linux@roeck-us.net> (raw)
In-Reply-To: <1412659726-29957-1-git-send-email-linux@roeck-us.net>
Register with kernel poweroff handler instead of setting pm_power_off
directly. Register with default priority value of 128 to reflect that
the original code generates an error if another poweroff handler has
already been registered when the driver is loaded.
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
drivers/power/reset/qnap-poweroff.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/power/reset/qnap-poweroff.c b/drivers/power/reset/qnap-poweroff.c
index a75db7f..c474980 100644
--- a/drivers/power/reset/qnap-poweroff.c
+++ b/drivers/power/reset/qnap-poweroff.c
@@ -16,7 +16,9 @@
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/notifier.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/serial_reg.h>
#include <linux/kallsyms.h>
#include <linux/of.h>
@@ -55,7 +57,8 @@ static void __iomem *base;
static unsigned long tclk;
static const struct power_off_cfg *cfg;
-static void qnap_power_off(void)
+static int qnap_power_off(struct notifier_block *this, unsigned long unused1,
+ void *unused2)
{
const unsigned divisor = ((tclk + (8 * cfg->baud)) / (16 * cfg->baud));
@@ -72,14 +75,20 @@ static void qnap_power_off(void)
/* send the power-off command to PIC */
writel(cfg->cmd, UART1_REG(TX));
+
+ return NOTIFY_DONE;
}
+static struct notifier_block qnap_poweroff_nb = {
+ .notifier_call = qnap_power_off,
+ .priority = 128,
+};
+
static int qnap_power_off_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
struct resource *res;
struct clk *clk;
- char symname[KSYM_NAME_LEN];
const struct of_device_id *match =
of_match_node(qnap_power_off_of_match_table, np);
@@ -106,22 +115,13 @@ static int qnap_power_off_probe(struct platform_device *pdev)
tclk = clk_get_rate(clk);
- /* Check that nothing else has already setup a handler */
- if (pm_power_off) {
- lookup_symbol_name((ulong)pm_power_off, symname);
- dev_err(&pdev->dev,
- "pm_power_off already claimed %p %s",
- pm_power_off, symname);
- return -EBUSY;
- }
- pm_power_off = qnap_power_off;
-
- return 0;
+ return register_poweroff_handler(&qnap_poweroff_nb);
}
static int qnap_power_off_remove(struct platform_device *pdev)
{
- pm_power_off = NULL;
+ unregister_poweroff_handler(&qnap_poweroff_nb);
+
return 0;
}
--
1.9.1
next prev parent reply other threads:[~2014-10-07 5:28 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1412659726-29957-1-git-send-email-linux@roeck-us.net>
2014-10-07 5:28 ` [PATCH 01/44] kernel: Add support for poweroff handler call chain Guenter Roeck
2014-10-07 5:28 ` [PATCH 02/44] memory: emif: Use API function to determine poweroff capability Guenter Roeck
2014-10-07 5:28 ` [PATCH 03/44] hibernate: Call have_kernel_poweroff instead of checking pm_power_off Guenter Roeck
2014-10-07 5:28 ` [PATCH 04/44] m68k: Replace mach_power_off with pm_power_off Guenter Roeck
2014-10-07 5:28 ` [PATCH 05/44] mfd: as3722: Drop reference to pm_power_off from devicetree bindings Guenter Roeck
2014-10-07 5:28 ` [PATCH 06/44] gpio-poweroff: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 07/44] qnap-poweroff: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 09/44] mfd: palmas: Register with kernel poweroff handler Guenter Roeck
2014-10-07 5:28 ` [PATCH 10/44] mfd: axp20x: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 11/44] mfd: retu: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 12/44] mfd: ab8500-sysctrl: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 13/44] mfd: max8907: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 14/44] mfd: tps80031: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 15/44] mfd: dm355evm_msp: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 16/44] mfd: tps6586x: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 17/44] mfd: tps65910: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 18/44] mfd: twl4030-power: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 19/44] ipmi: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 20/44] power/reset: restart-poweroff: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 21/44] power/reset: gpio-poweroff: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 22/44] power/reset: as3722-poweroff: " Guenter Roeck
2014-10-07 5:28 ` Guenter Roeck [this message]
2014-10-07 16:02 ` [PATCH 23/44] power/reset: qnap-poweroff: " Andrew Lunn
2014-10-07 5:28 ` [PATCH 24/44] power/reset: msm-powroff: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 25/44] power/reset: vexpress-poweroff: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 26/44] x86: iris: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 27/44] x86: apm: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 28/44] x86: olpc: Register xo1 poweroff handler " Guenter Roeck
2014-10-07 5:28 ` [PATCH 29/44] staging: nvec: Register " Guenter Roeck
2014-10-07 16:23 ` Greg Kroah-Hartman
2014-10-07 5:28 ` [PATCH 30/44] acpi: Register poweroff handler " Guenter Roeck
2014-10-07 5:28 ` [PATCH 31/44] arm: Register " Guenter Roeck
2014-10-07 5:28 ` [PATCH 32/44] arm64: psci: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 33/44] avr32: atngw100: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 34/44] ia64: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 35/44] m68k: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 36/44] mips: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 37/44] sh: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 38/44] x86: lguest: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 39/44] x86: ce4100: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 40/44] x86: intel-mid: Drop registration of dummy poweroff handlers Guenter Roeck
2014-10-07 5:28 ` [PATCH 41/44] x86: pmc_atom: Register poweroff handler with kernel poweroff handler Guenter Roeck
2014-10-07 5:28 ` [PATCH 42/44] efi: " Guenter Roeck
2014-10-07 5:28 ` [PATCH 43/44] hwmon: (ab8500) Call kernel_power_off instead of pm_power_off Guenter Roeck
2014-10-07 5:28 ` [PATCH 44/44] kernel: Remove pm_power_off Guenter Roeck
[not found] ` <1412659726-29957-19-git-send-email-linux@roeck-us.net>
2014-10-07 7:52 ` [PATCH 18/44] mfd: twl4030-power: Register with kernel poweroff handler Lee Jones
[not found] ` <1412659726-29957-13-git-send-email-linux@roeck-us.net>
2014-10-07 8:00 ` [PATCH 12/44] mfd: ab8500-sysctrl: " Lee Jones
[not found] ` <20141007080048.GB25331@lee--X1>
2014-10-09 10:36 ` Catalin Marinas
2014-10-09 10:49 ` Lee Jones
2014-10-09 13:26 ` Guenter Roeck
2014-10-09 13:33 ` Lee Jones
2014-10-09 15:45 ` Guenter Roeck
2014-10-09 15:54 ` Guenter Roeck
[not found] ` <1412659726-29957-32-git-send-email-linux@roeck-us.net>
2014-10-07 8:04 ` [PATCH 31/44] arm: " Nicolas Ferre
[not found] ` <1412659726-29957-5-git-send-email-linux@roeck-us.net>
2014-10-07 8:29 ` [PATCH 04/44] m68k: Replace mach_power_off with pm_power_off Geert Uytterhoeven
[not found] ` <1412659726-29957-36-git-send-email-linux@roeck-us.net>
2014-10-07 9:19 ` [PATCH 35/44] m68k: Register with kernel poweroff handler Geert Uytterhoeven
[not found] ` <1412659726-29957-8-git-send-email-linux@roeck-us.net>
2014-10-07 11:02 ` [PATCH 07/44] qnap-poweroff: Drop reference to pm_power_off from devicetree bindings Mark Rutland
2014-10-07 15:57 ` Guenter Roeck
2014-10-07 15:51 ` Andrew Lunn
[not found] ` <1412659726-29957-7-git-send-email-linux@roeck-us.net>
2014-10-07 11:03 ` [PATCH 06/44] gpio-poweroff: " Mark Rutland
2014-10-07 15:50 ` Andrew Lunn
[not found] ` <1412659726-29957-22-git-send-email-linux@roeck-us.net>
2014-10-07 16:00 ` [PATCH 21/44] power/reset: gpio-poweroff: Register with kernel poweroff handler Andrew Lunn
[not found] ` <1412659726-29957-21-git-send-email-linux@roeck-us.net>
2014-10-07 16:06 ` [PATCH 20/44] power/reset: restart-poweroff: " Andrew Lunn
[not found] ` <1412659726-29957-6-git-send-email-linux@roeck-us.net>
2014-10-07 10:59 ` [PATCH 05/44] mfd: as3722: Drop reference to pm_power_off from devicetree bindings Mark Rutland
2014-10-07 16:21 ` Rob Landley
[not found] ` <543412F7.8040909@landley.net>
2014-10-07 16:31 ` Guenter Roeck
[not found] ` <543412F7.8040909-VoJi6FS/r0vR7s880joybQ@public.gmane.org>
2014-10-07 16:58 ` Mark Rutland
[not found] ` <20141007163131.GE28835@roeck-us.net>
2014-10-07 16:59 ` David Daney
[not found] ` <54341BF1.9020001@gmail.com>
2014-10-07 17:10 ` Rob Landley
[not found] ` <1412659726-29957-4-git-send-email-linux@roeck-us.net>
2014-10-07 23:41 ` [PATCH 03/44] hibernate: Call have_kernel_poweroff instead of checking pm_power_off Rafael J. Wysocki
2014-10-09 10:32 ` Pavel Machek
[not found] ` <20141009103254.GB6787@amd>
2014-10-09 13:24 ` Guenter Roeck
[not found] ` <1412659726-29957-45-git-send-email-linux@roeck-us.net>
2014-10-07 23:43 ` [PATCH 44/44] kernel: Remove pm_power_off Rafael J. Wysocki
[not found] ` <1412659726-29957-9-git-send-email-linux@roeck-us.net>
2014-10-08 11:06 ` 回复: [PATCH 08/44] kernel: Move pm_power_off to common code Xuetao Guan
2014-10-09 10:28 ` Catalin Marinas
[not found] ` <1412659726-29957-2-git-send-email-linux@roeck-us.net>
2014-10-07 7:46 ` [PATCH 01/44] kernel: Add support for poweroff handler call chain Philippe Rétornaz
2014-10-09 10:31 ` Pavel Machek
2014-10-09 15:38 ` Guenter Roeck
2014-10-09 11:31 ` Geert Uytterhoeven
2015-06-18 1:04 ` Stephen Boyd
[not found] ` <55821936.4040704@codeaurora.org>
2015-06-18 6:53 ` Frans Klaver
[not found] ` <CAH6sp9P7rq2y_hiQPHKUP85CwnEmp87yC7Psh4=29h-pYnb_yw@mail.gmail.com>
2015-06-18 11:54 ` Guenter Roeck
[not found] ` <5582B15B.4010205@roeck-us.net>
2015-06-18 12:14 ` Frans Klaver
2015-06-18 15:30 ` Guenter Roeck
[not found] ` <20150618153003.GA19224@roeck-us.net>
2015-06-18 21:40 ` Stephen Boyd
[not found] ` <1412659726-29957-33-git-send-email-linux@roeck-us.net>
[not found] ` <1412659726-29957-33-git-send-email-linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2014-10-09 10:41 ` [PATCH 32/44] arm64: psci: Register with kernel poweroff handler Catalin Marinas
[not found] ` <1412659726-29957-34-git-send-email-linux@roeck-us.net>
2014-11-01 10:16 ` [PATCH 33/44] avr32: atngw100: " Hans-Christian Egtvedt
[not found] ` <20141101101637.GA5765@samfundet.no>
2014-11-01 17:02 ` Guenter Roeck
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=1412659726-29957-24-git-send-email-linux@roeck-us.net \
--to=linux@roeck-us.net \
--cc=adi-buildroot-devel@lists.sourceforge.net \
--cc=devel@driverdev.osuosl.org \
--cc=devicetree@vger.kernel.org \
--cc=lguest@lists.ozlabs.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-am33-list@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-c6x-dev@linux-c6x.org \
--cc=linux-cris-kernel@axis.com \
--cc=linux-efi@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m32r-ja@ml.linux-m32r.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-metag@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=openipmi-developer@lists.sourceforge.net \
--cc=user-mode-linux-devel@lists.sourceforge.net \
--cc=xen-devel@lists.xenproject.org \
/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).