79 lines · 1.5 KB · C
RawDownload
// SPDX-License-Identifier: GPL-2.0/* * Copyright (C) 2020-2022 Loongson Technology Corporation Limited */#include <linux/kernel.h>#include <linux/acpi.h>#include <linux/efi.h>#include <linux/export.h>#include <linux/pm.h>#include <linux/types.h>#include <linux/reboot.h>#include <linux/delay.h>#include <linux/console.h> #include <acpi/reboot.h>#include <asm/idle.h>#include <asm/loongarch.h>#include <asm/loongson.h> void (*pm_power_off)(void);EXPORT_SYMBOL(pm_power_off); void machine_halt(void){#ifdef CONFIG_SMP	preempt_disable();	smp_send_stop();#endif	local_irq_disable();	clear_csr_ecfg(ECFG0_IM); 	pr_notice("\n\n** You can safely turn off the power now **\n\n");	console_flush_on_panic(CONSOLE_FLUSH_PENDING); 	while (true) {		__asm__ __volatile__("idle 0" : : : "memory");	}} void machine_power_off(void){#ifdef CONFIG_SMP	preempt_disable();	smp_send_stop();#endif#ifdef CONFIG_PM	if (!acpi_disabled)		enable_pci_wakeup();#endif	do_kernel_power_off();#ifdef CONFIG_EFI	efi.reset_system(EFI_RESET_SHUTDOWN, EFI_SUCCESS, 0, NULL);#endif 	while (true) {		__asm__ __volatile__("idle 0" : : : "memory");	}} void machine_restart(char *command){#ifdef CONFIG_SMP	preempt_disable();	smp_send_stop();#endif	do_kernel_restart(command);#ifdef CONFIG_EFI	if (efi_capsule_pending(NULL))		efi_reboot(REBOOT_WARM, NULL);	else		efi_reboot(REBOOT_COLD, NULL);#endif	if (!acpi_disabled)		acpi_reboot(); 	while (true) {		__asm__ __volatile__("idle 0" : : : "memory");	}}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t