/* include/linux/earlysuspend.h * * Copyright (C) 2007-2008 Google, Inc. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #ifndef _LINUX_EARLYSUSPEND_H #define _LINUX_EARLYSUSPEND_H #ifdef CONFIG_HAS_EARLYSUSPEND #include <linux/list.h> #endif /* The early_suspend structure defines suspend and resume hooks to be called * when the user visible sleep state of the system changes, and a level to * control the order. They can be used to turn off the screen and input * devices that are not used for wakeup. * Suspend handlers are called in low to high level order, resume handlers are * called in the opposite order. If, when calling register_early_suspend, * the suspend handlers have already been called without a matching call to the * resume handlers, the suspend handler will be called directly from * register_early_suspend. This direct call can violate the normal level order. */ enum { EARLY_SUSPEND_LEVEL_BLANK_SCREEN = 50, EARLY_SUSPEND_LEVEL_STOP_DRAWING = 100, EARLY_SUSPEND_LEVEL_DISABLE_FB = 150, }; struct early_suspend { #ifdef CONFIG_HAS_EARLYSUSPEND struct list_head link; int level; void (*suspend)(struct early_suspend *h); void (*resume)(struct early_suspend *h); #endif }; #ifdef CONFIG_HAS_EARLYSUSPEND void register_early_suspend(struct early_suspend *handler); void unregister_early_suspend(struct early_suspend *handler); #else #define register_early_suspend(handler) do { } while (0) #define unregister_early_suspend(handler) do { } while (0) #endif #endif