greybus: kernel_ver: add handle for lights in 4.5
authorRui Miguel Silva <rui.silva@linaro.org>
Tue, 12 Jan 2016 14:35:48 +0000 (14:35 +0000)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 13 Jan 2016 23:26:49 +0000 (15:26 -0800)
In v4.5 the LED API is changed related to the set brightness
operations, set_sync is removed and the workqueue handling is now done
by leds core, so no need for individual drivers to have one.
This will be done by removing the SET_SYNC macro and add a new
SET_BLOCKING.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/kernel_ver.h

index d9bf159329e5c63019e3f1e8baab9b9003d92035..1f8d6a1bb6da25c0763e09783f4609a3963eb15c 100644 (file)
@@ -267,6 +267,15 @@ static inline size_t sg_pcopy_from_buffer(struct scatterlist *sgl,
 #include <linux/led-class-flash.h>
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)
+/*
+ * New change in LED api, the set_sync operation was renamed to set_blocking and
+ * the workqueue is now handle by core. So, only one set operation is need.
+ */
+#undef LED_HAVE_SET_SYNC
+#define LED_HAVE_SET_BLOCKING
+#endif
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
 /*
  * From this version upper it was introduced the possibility to disable led