Commit 3740e49c authored by Fabio Baltieri's avatar Fabio Baltieri Committed by Bryan Wu

ledtrig-ide-disk: use generic one-shot blink api

Convert ledtrig-ide-disk code to use the generic API for one-shot LED
blinking.

This patch changes slightly the behaviour of the trigger, as while the
original version kept the LED on under heavy activity, the new one keeps
a constant on-off blink at 1 / (2 * BLINK_DELAY) Hz.

(bryan.wu@canonical.com: remove 2 useless included header files)
Signed-off-by: default avatarFabio Baltieri <fabio.baltieri@gmail.com>
Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
parent 5bb629c5
...@@ -12,39 +12,22 @@ ...@@ -12,39 +12,22 @@
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <linux/jiffies.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/timer.h>
#include <linux/leds.h> #include <linux/leds.h>
static void ledtrig_ide_timerfunc(unsigned long data); #define BLINK_DELAY 30
DEFINE_LED_TRIGGER(ledtrig_ide); DEFINE_LED_TRIGGER(ledtrig_ide);
static DEFINE_TIMER(ledtrig_ide_timer, ledtrig_ide_timerfunc, 0, 0); static unsigned long ide_blink_delay = BLINK_DELAY;
static int ide_activity;
static int ide_lastactivity;
void ledtrig_ide_activity(void) void ledtrig_ide_activity(void)
{ {
ide_activity++; led_trigger_blink_oneshot(ledtrig_ide,
if (!timer_pending(&ledtrig_ide_timer)) &ide_blink_delay, &ide_blink_delay, 0);
mod_timer(&ledtrig_ide_timer, jiffies + msecs_to_jiffies(10));
} }
EXPORT_SYMBOL(ledtrig_ide_activity); EXPORT_SYMBOL(ledtrig_ide_activity);
static void ledtrig_ide_timerfunc(unsigned long data)
{
if (ide_lastactivity != ide_activity) {
ide_lastactivity = ide_activity;
/* INT_MAX will set each LED to its maximum brightness */
led_trigger_event(ledtrig_ide, INT_MAX);
mod_timer(&ledtrig_ide_timer, jiffies + msecs_to_jiffies(10));
} else {
led_trigger_event(ledtrig_ide, LED_OFF);
}
}
static int __init ledtrig_ide_init(void) static int __init ledtrig_ide_init(void)
{ {
led_trigger_register_simple("ide-disk", &ledtrig_ide); led_trigger_register_simple("ide-disk", &ledtrig_ide);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment