Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

leds: unify the location of led-trigger API

Part of led-trigger API was in the private drivers/leds/leds.h header.
Move it to the include/linux/leds.h header to unify the API location
and announce it as public. It has been already exported from
led-triggers.c with EXPORT_SYMBOL_GPL macro. The no-op definitions are
changed from macros to inline to match the style of the surrounding code.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>

authored by

Jacek Anaszewski and committed by
Bryan Wu
20f56758 0e14e0bf

+25 -24
-24
drivers/leds/leds.h
··· 13 13 #ifndef __LEDS_H_INCLUDED 14 14 #define __LEDS_H_INCLUDED 15 15 16 - #include <linux/device.h> 17 16 #include <linux/rwsem.h> 18 17 #include <linux/leds.h> 19 18 ··· 48 49 49 50 extern struct rw_semaphore leds_list_lock; 50 51 extern struct list_head leds_list; 51 - 52 - #ifdef CONFIG_LEDS_TRIGGERS 53 - void led_trigger_set_default(struct led_classdev *led_cdev); 54 - void led_trigger_set(struct led_classdev *led_cdev, 55 - struct led_trigger *trigger); 56 - void led_trigger_remove(struct led_classdev *led_cdev); 57 - 58 - static inline void *led_get_trigger_data(struct led_classdev *led_cdev) 59 - { 60 - return led_cdev->trigger_data; 61 - } 62 - 63 - #else 64 - #define led_trigger_set_default(x) do {} while (0) 65 - #define led_trigger_set(x, y) do {} while (0) 66 - #define led_trigger_remove(x) do {} while (0) 67 - #define led_get_trigger_data(x) (NULL) 68 - #endif 69 - 70 - ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr, 71 - const char *buf, size_t count); 72 - ssize_t led_trigger_show(struct device *dev, struct device_attribute *attr, 73 - char *buf); 74 52 75 53 #endif /* __LEDS_H_INCLUDED */
+25
include/linux/leds.h
··· 12 12 #ifndef __LINUX_LEDS_H_INCLUDED 13 13 #define __LINUX_LEDS_H_INCLUDED 14 14 15 + #include <linux/device.h> 15 16 #include <linux/list.h> 16 17 #include <linux/mutex.h> 17 18 #include <linux/rwsem.h> ··· 223 222 struct list_head next_trig; 224 223 }; 225 224 225 + ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr, 226 + const char *buf, size_t count); 227 + ssize_t led_trigger_show(struct device *dev, struct device_attribute *attr, 228 + char *buf); 229 + 226 230 /* Registration functions for complex triggers */ 227 231 extern int led_trigger_register(struct led_trigger *trigger); 228 232 extern void led_trigger_unregister(struct led_trigger *trigger); ··· 244 238 unsigned long *delay_on, 245 239 unsigned long *delay_off, 246 240 int invert); 241 + extern void led_trigger_set_default(struct led_classdev *led_cdev); 242 + extern void led_trigger_set(struct led_classdev *led_cdev, 243 + struct led_trigger *trigger); 244 + extern void led_trigger_remove(struct led_classdev *led_cdev); 245 + 246 + static inline void *led_get_trigger_data(struct led_classdev *led_cdev) 247 + { 248 + return led_cdev->trigger_data; 249 + } 250 + 247 251 /** 248 252 * led_trigger_rename_static - rename a trigger 249 253 * @name: the new trigger name ··· 283 267 static inline void led_trigger_unregister_simple(struct led_trigger *trigger) {} 284 268 static inline void led_trigger_event(struct led_trigger *trigger, 285 269 enum led_brightness event) {} 270 + static inline void led_trigger_set_default(struct led_classdev *led_cdev) {} 271 + static inline void led_trigger_set(struct led_classdev *led_cdev, 272 + struct led_trigger *trigger) {} 273 + static inline void led_trigger_remove(struct led_classdev *led_cdev) {} 274 + static inline void *led_get_trigger_data(struct led_classdev *led_cdev) 275 + { 276 + return NULL; 277 + } 278 + 286 279 #endif /* CONFIG_LEDS_TRIGGERS */ 287 280 288 281 /* Trigger specific functions */