2012-09-18 11:05:03 +05:30
/*
* user_space . c - A simple user space Thermal events notifier
*
* Copyright ( C ) 2012 Intel Corp
* Copyright ( C ) 2012 Durgadoss R < durgadoss . r @ intel . com >
*
* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; version 2 of the License .
*
* 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 .
*
* You should have received a copy of the GNU General Public License along
* with this program ; if not , write to the Free Software Foundation , Inc . ,
* 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA .
*
* ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
*/
# include <linux/thermal.h>
# include "thermal_core.h"
/**
* notify_user_space - Notifies user space about thermal events
* @ tz - thermal_zone_device
*
* This function notifies the user space through UEvents .
*/
2012-09-27 16:57:54 +05:30
static int notify_user_space ( struct thermal_zone_device * tz , int trip )
2012-09-18 11:05:03 +05:30
{
mutex_lock ( & tz - > lock ) ;
kobject_uevent ( & tz - > device . kobj , KOBJ_CHANGE ) ;
mutex_unlock ( & tz - > lock ) ;
return 0 ;
}
2012-09-27 16:57:54 +05:30
static struct thermal_governor thermal_gov_user_space = {
2012-09-18 11:05:03 +05:30
. name = " user_space " ,
. throttle = notify_user_space ,
} ;
2013-03-26 16:38:29 +08:00
int thermal_gov_user_space_register ( void )
2012-09-18 11:05:03 +05:30
{
return thermal_register_governor ( & thermal_gov_user_space ) ;
}
2013-03-26 16:38:29 +08:00
void thermal_gov_user_space_unregister ( void )
2012-09-18 11:05:03 +05:30
{
thermal_unregister_governor ( & thermal_gov_user_space ) ;
}