cregit-Linux how code gets into the kernel

Release 4.14 arch/mips/loongson32/common/reset.c

/*
 * Copyright (c) 2011 Zhang, Keguang <keguang.zhang@gmail.com>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

#include <linux/io.h>
#include <linux/pm.h>
#include <linux/sizes.h>
#include <asm/idle.h>
#include <asm/reboot.h>

#include <loongson1.h>


static void __iomem *wdt_reg_base;


static void ls1x_halt(void) { while (1) { if (cpu_wait) cpu_wait(); } }

Contributors

PersonTokensPropCommitsCommitProp
Kelvin Cheung21100.00%1100.00%
Total21100.00%1100.00%


static void ls1x_restart(char *command) { __raw_writel(0x1, wdt_reg_base + WDT_EN); __raw_writel(0x1, wdt_reg_base + WDT_TIMER); __raw_writel(0x1, wdt_reg_base + WDT_SET); ls1x_halt(); }

Contributors

PersonTokensPropCommitsCommitProp
Kelvin Cheung40100.00%3100.00%
Total40100.00%3100.00%


static void ls1x_power_off(void) { ls1x_halt(); }

Contributors

PersonTokensPropCommitsCommitProp
Kelvin Cheung11100.00%1100.00%
Total11100.00%1100.00%


static int __init ls1x_reboot_setup(void) { wdt_reg_base = ioremap_nocache(LS1X_WDT_BASE, (SZ_4 + SZ_8)); if (!wdt_reg_base) panic("Failed to remap watchdog registers"); _machine_restart = ls1x_restart; _machine_halt = ls1x_halt; pm_power_off = ls1x_power_off; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Kelvin Cheung47100.00%3100.00%
Total47100.00%3100.00%

arch_initcall(ls1x_reboot_setup);

Overall Contributors

PersonTokensPropCommitsCommitProp
Kelvin Cheung14597.32%360.00%
Ralf Bächle42.68%240.00%
Total149100.00%5100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.