⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm.c

📁 linux 内核源代码
💻 C
字号:
/* * hp6x0 Power Management Routines * * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License. */#include <linux/init.h>#include <linux/suspend.h>#include <linux/errno.h>#include <linux/time.h>#include <asm/io.h>#include <asm/hd64461.h>#include <asm/hp6xx.h>#include <asm/cpu/dac.h>#include <asm/pm.h>#define STBCR		0xffffff82#define STBCR2		0xffffff88static int hp6x0_pm_enter(suspend_state_t state){	u8 stbcr, stbcr2;#ifdef CONFIG_HD64461_ENABLER	u8 scr;	u16 hd64461_stbcr;#endif#ifdef CONFIG_HD64461_ENABLER	outb(0, HD64461_PCC1CSCIER);	scr = inb(HD64461_PCC1SCR);	scr |= HD64461_PCCSCR_VCC1;	outb(scr, HD64461_PCC1SCR);	hd64461_stbcr = inw(HD64461_STBCR);	hd64461_stbcr |= HD64461_STBCR_SPC1ST;	outw(hd64461_stbcr, HD64461_STBCR);#endif	ctrl_outb(0x1f, DACR);	stbcr = ctrl_inb(STBCR);	ctrl_outb(0x01, STBCR);	stbcr2 = ctrl_inb(STBCR2);	ctrl_outb(0x7f , STBCR2);	outw(0xf07f, HD64461_SCPUCR);	pm_enter();	outw(0, HD64461_SCPUCR);	ctrl_outb(stbcr, STBCR);	ctrl_outb(stbcr2, STBCR2);#ifdef CONFIG_HD64461_ENABLER	hd64461_stbcr = inw(HD64461_STBCR);	hd64461_stbcr &= ~HD64461_STBCR_SPC1ST;	outw(hd64461_stbcr, HD64461_STBCR);	outb(0x4c, HD64461_PCC1CSCIER);	outb(0x00, HD64461_PCC1CSCR);#endif	return 0;}static struct platform_suspend_ops hp6x0_pm_ops = {	.enter		= hp6x0_pm_enter,	.valid		= suspend_valid_only_mem,};static int __init hp6x0_pm_init(void){	suspend_set_ops(&hp6x0_pm_ops);	return 0;}late_initcall(hp6x0_pm_init);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -