/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2001 Keith M Wesolowski * Copyright (C) 2001 Paul Mundt * Copyright (C) 2003 Guido Guenther <agx@sigxcpu.org> */ #include <linux/compiler.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/sched.h> #include <linux/sched/signal.h> #include <linux/notifier.h> #include <linux/delay.h> #include <linux/rtc/ds1685.h> #include <linux/interrupt.h> #include <linux/pm.h> #include <asm/addrspace.h> #include <asm/irq.h> #include <asm/reboot.h> #include <asm/wbflush.h> #include <asm/ip32/mace.h> #include <asm/ip32/crime.h> #include <asm/ip32/ip32_ints.h> #define POWERDOWN_TIMEOUT 120 /* * Blink frequency during reboot grace period and when panicked. */ #define POWERDOWN_FREQ (HZ / 4) #define PANIC_FREQ (HZ / 8) extern struct platform_device ip32_rtc_device; static struct timer_list power_timer, blink_timer; static int has_panicked, shutting_down;
static __noreturn void ip32_poweroff(void *data) { void (*poweroff_func)(struct platform_device *) = symbol_get(ds1685_rtc_poweroff); #ifdef CONFIG_MODULES /* If the first __symbol_get failed, our module wasn't loaded. */ if (!poweroff_func) { request_module("rtc-ds1685"); poweroff_func = symbol_get(ds1685_rtc_poweroff); } #endif if (!poweroff_func) pr_emerg("RTC not available for power-off. Spinning forever ...\n"); else { (*poweroff_func)((struct platform_device *)data); symbol_put(ds1685_rtc_poweroff); } unreachable(); }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Joshua Kinard | 56 | 65.12% | 1 | 50.00% |
Ralf Bächle | 30 | 34.88% | 1 | 50.00% |
Total | 86 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Joshua Kinard | 16 | 66.67% | 1 | 50.00% |
Ralf Bächle | 8 | 33.33% | 1 | 50.00% |
Total | 24 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ralf Bächle | 37 | 84.09% | 2 | 66.67% |
Andrew Morton | 7 | 15.91% | 1 | 33.33% |
Total | 44 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ralf Bächle | 10 | 71.43% | 1 | 50.00% |
Joshua Kinard | 4 | 28.57% | 1 | 50.00% |
Total | 14 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Joshua Kinard | 11 | 68.75% | 1 | 50.00% |
Ralf Bächle | 5 | 31.25% | 1 | 50.00% |
Total | 16 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ralf Bächle | 65 | 86.67% | 1 | 25.00% |
Joshua Kinard | 8 | 10.67% | 1 | 25.00% |
Cédric Le Goater | 1 | 1.33% | 1 | 25.00% |
Lee Revell | 1 | 1.33% | 1 | 25.00% |
Total | 75 | 100.00% | 4 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ralf Bächle | 62 | 87.32% | 2 | 50.00% |
Andrew Morton | 7 | 9.86% | 1 | 25.00% |
Lee Revell | 2 | 2.82% | 1 | 25.00% |
Total | 71 | 100.00% | 4 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ralf Bächle | 59 | 76.62% | 3 | 50.00% |
Andrew Morton | 16 | 20.78% | 1 | 16.67% |
Joshua Kinard | 1 | 1.30% | 1 | 16.67% |
Alan Stern | 1 | 1.30% | 1 | 16.67% |
Total | 77 | 100.00% | 6 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Ralf Bächle | 357 | 68.65% | 5 | 45.45% |
Joshua Kinard | 116 | 22.31% | 1 | 9.09% |
Andrew Morton | 37 | 7.12% | 1 | 9.09% |
Lee Revell | 5 | 0.96% | 1 | 9.09% |
Arnd Bergmann | 3 | 0.58% | 1 | 9.09% |
Alan Stern | 1 | 0.19% | 1 | 9.09% |
Cédric Le Goater | 1 | 0.19% | 1 | 9.09% |
Total | 520 | 100.00% | 11 | 100.00% |