@ -63,6 +63,7 @@
struct thermal_zone_device ;
struct thermal_cooling_device ;
struct thermal_instance ;
enum thermal_device_mode {
THERMAL_DEVICE_DISABLED = 0 ,
@ -116,6 +117,12 @@ struct thermal_cooling_device_ops {
int ( * get_max_state ) ( struct thermal_cooling_device * , unsigned long * ) ;
int ( * get_cur_state ) ( struct thermal_cooling_device * , unsigned long * ) ;
int ( * set_cur_state ) ( struct thermal_cooling_device * , unsigned long ) ;
int ( * get_requested_power ) ( struct thermal_cooling_device * ,
struct thermal_zone_device * , u32 * ) ;
int ( * state2power ) ( struct thermal_cooling_device * ,
struct thermal_zone_device * , unsigned long , u32 * ) ;
int ( * power2state ) ( struct thermal_cooling_device * ,
struct thermal_zone_device * , u32 , unsigned long * ) ;
} ;
struct thermal_cooling_device {
@ -331,6 +338,16 @@ void thermal_zone_of_sensor_unregister(struct device *dev,
# endif
# if IS_ENABLED(CONFIG_THERMAL)
static inline bool cdev_is_power_actor ( struct thermal_cooling_device * cdev )
{
return cdev - > ops - > get_requested_power & & cdev - > ops - > state2power & &
cdev - > ops - > power2state ;
}
int power_actor_get_max_power ( struct thermal_cooling_device * ,
struct thermal_zone_device * tz , u32 * max_power ) ;
int power_actor_set_power ( struct thermal_cooling_device * ,
struct thermal_instance * , u32 ) ;
struct thermal_zone_device * thermal_zone_device_register ( const char * , int , int ,
void * , struct thermal_zone_device_ops * ,
const struct thermal_zone_params * , int , int ) ;
@ -359,6 +376,14 @@ struct thermal_instance *get_thermal_instance(struct thermal_zone_device *,
void thermal_cdev_update ( struct thermal_cooling_device * ) ;
void thermal_notify_framework ( struct thermal_zone_device * , int ) ;
# else
static inline bool cdev_is_power_actor ( struct thermal_cooling_device * cdev )
{ return false ; }
static inline int power_actor_get_max_power ( struct thermal_cooling_device * cdev ,
struct thermal_zone_device * tz , u32 * max_power )
{ return 0 ; }
static inline int power_actor_set_power ( struct thermal_cooling_device * cdev ,
struct thermal_instance * tz , u32 power )
{ return 0 ; }
static inline struct thermal_zone_device * thermal_zone_device_register (
const char * type , int trips , int mask , void * devdata ,
struct thermal_zone_device_ops * ops ,