2006-03-31 14:31:04 +04:00
/*
* LED Core
*
* Copyright 2005 Openedhand Ltd .
*
* Author : Richard Purdie < rpurdie @ openedhand . com >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*
*/
# ifndef __LEDS_H_INCLUDED
# define __LEDS_H_INCLUDED
2008-01-01 02:09:44 +03:00
# include <linux/rwsem.h>
2006-03-31 14:31:04 +04:00
# include <linux/leds.h>
2014-11-14 13:50:18 +03:00
static inline void led_set_brightness_async ( struct led_classdev * led_cdev ,
2006-03-31 14:31:04 +04:00
enum led_brightness value )
{
2014-12-23 21:59:23 +03:00
value = min ( value , led_cdev - > max_brightness ) ;
led_cdev - > brightness = value ;
2014-11-14 13:50:18 +03:00
2006-03-31 14:31:04 +04:00
if ( ! ( led_cdev - > flags & LED_SUSPENDED ) )
led_cdev - > brightness_set ( led_cdev , value ) ;
}
2014-11-14 13:50:18 +03:00
static inline int led_set_brightness_sync ( struct led_classdev * led_cdev ,
enum led_brightness value )
{
int ret = 0 ;
led_cdev - > brightness = min ( value , led_cdev - > max_brightness ) ;
if ( ! ( led_cdev - > flags & LED_SUSPENDED ) )
ret = led_cdev - > brightness_set_sync ( led_cdev ,
led_cdev - > brightness ) ;
return ret ;
}
2008-03-09 23:54:37 +03:00
static inline int led_get_brightness ( struct led_classdev * led_cdev )
{
return led_cdev - > brightness ;
}
2012-08-15 17:44:34 +04:00
void led_stop_software_blink ( struct led_classdev * led_cdev ) ;
2008-01-01 02:09:44 +03:00
extern struct rw_semaphore leds_list_lock ;
2006-03-31 14:31:04 +04:00
extern struct list_head leds_list ;
# endif /* __LEDS_H_INCLUDED */