1a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham/* 2a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * governor.h - internal header for devfreq governors. 3a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * 4a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * Copyright (C) 2011 Samsung Electronics 5a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * MyungJoo Ham <myungjoo.ham@samsung.com> 6a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * 7a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * This program is free software; you can redistribute it and/or modify 8a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * it under the terms of the GNU General Public License version 2 as 9a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * published by the Free Software Foundation. 10a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * 11a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham * This header is for devfreq governors in drivers/devfreq/ 12a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham */ 13a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham 14a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham#ifndef _GOVERNOR_H 15a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham#define _GOVERNOR_H 16a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham 17a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham#include <linux/devfreq.h> 18a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham 19a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham#define to_devfreq(DEV) container_of((DEV), struct devfreq, dev) 20a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham 217e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkat/* Devfreq events */ 227e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkat#define DEVFREQ_GOV_START 0x1 237e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkat#define DEVFREQ_GOV_STOP 0x2 247e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkat#define DEVFREQ_GOV_INTERVAL 0x3 25206c30cfeb7c05dfb9fdfd81b1deb933627e43c1Rajagopal Venkat#define DEVFREQ_GOV_SUSPEND 0x4 26206c30cfeb7c05dfb9fdfd81b1deb933627e43c1Rajagopal Venkat#define DEVFREQ_GOV_RESUME 0x5 277e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkat 28a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham/* Caution: devfreq->lock must be locked before calling update_devfreq */ 29a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Hamextern int update_devfreq(struct devfreq *devfreq); 30a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham 317e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkatextern void devfreq_monitor_start(struct devfreq *devfreq); 327e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkatextern void devfreq_monitor_stop(struct devfreq *devfreq); 337e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkatextern void devfreq_monitor_suspend(struct devfreq *devfreq); 347e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkatextern void devfreq_monitor_resume(struct devfreq *devfreq); 357e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkatextern void devfreq_interval_update(struct devfreq *devfreq, 367e6fdd4bad033fa2d73716377b184fa975b0d985Rajagopal Venkat unsigned int *delay); 373aa173b8db200bb96354481acc0a5b9e123119feNishanth Menon 383aa173b8db200bb96354481acc0a5b9e123119feNishanth Menonextern int devfreq_add_governor(struct devfreq_governor *governor); 393aa173b8db200bb96354481acc0a5b9e123119feNishanth Menonextern int devfreq_remove_governor(struct devfreq_governor *governor); 403aa173b8db200bb96354481acc0a5b9e123119feNishanth Menon 41a3c98b8b2ede1f4230f49f9af7135cd902e71e83MyungJoo Ham#endif /* _GOVERNOR_H */ 42