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

📄 resume.c

📁 linux-2.6.15.6
💻 C
字号:
/* * resume.c - Functions for waking devices up. * * Copyright (c) 2003 Patrick Mochel * Copyright (c) 2003 Open Source Development Labs * * This file is released under the GPLv2 * */#include <linux/device.h>#include "power.h"extern int sysdev_resume(void);/** *	resume_device - Restore state for one device. *	@dev:	Device. * */int resume_device(struct device * dev){	int error = 0;	down(&dev->sem);	if (dev->power.pm_parent			&& dev->power.pm_parent->power.power_state.event) {		dev_err(dev, "PM: resume from %d, parent %s still %d\n",			dev->power.power_state.event,			dev->power.pm_parent->bus_id,			dev->power.pm_parent->power.power_state.event);	}	if (dev->bus && dev->bus->resume) {		dev_dbg(dev,"resuming\n");		error = dev->bus->resume(dev);	}	up(&dev->sem);	return error;}void dpm_resume(void){	down(&dpm_list_sem);	while(!list_empty(&dpm_off)) {		struct list_head * entry = dpm_off.next;		struct device * dev = to_device(entry);		get_device(dev);		list_del_init(entry);		list_add_tail(entry, &dpm_active);		up(&dpm_list_sem);		if (!dev->power.prev_state.event)			resume_device(dev);		down(&dpm_list_sem);		put_device(dev);	}	up(&dpm_list_sem);}/** *	device_resume - Restore state of each device in system. * *	Walk the dpm_off list, remove each entry, resume the device, *	then add it to the dpm_active list. */void device_resume(void){	down(&dpm_sem);	dpm_resume();	up(&dpm_sem);}EXPORT_SYMBOL_GPL(device_resume);/** *	device_power_up_irq - Power on some devices. * *	Walk the dpm_off_irq list and power each device up. This *	is used for devices that required they be powered down with *	interrupts disabled. As devices are powered on, they are moved to *	the dpm_suspended list. * *	Interrupts must be disabled when calling this. */void dpm_power_up(void){	while(!list_empty(&dpm_off_irq)) {		struct list_head * entry = dpm_off_irq.next;		struct device * dev = to_device(entry);		get_device(dev);		list_del_init(entry);		list_add_tail(entry, &dpm_active);		resume_device(dev);		put_device(dev);	}}/** *	device_pm_power_up - Turn on all devices that need special attention. * *	Power on system devices then devices that required we shut them down *	with interrupts disabled. *	Called with interrupts disabled. */void device_power_up(void){	sysdev_resume();	dpm_power_up();}EXPORT_SYMBOL_GPL(device_power_up);

⌨️ 快捷键说明

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