Blame view

drivers/leds/ledtrig-ide-disk.c 1.61 KB
2bfb646cd   Richard Purdie   [PATCH] LED: Add ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  /*
   * LED IDE-Disk Activity Trigger
   *
   * Copyright 2006 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.
   *
   */
  
  #include <linux/module.h>
f6a570333   Al Viro   [PATCH] severing ...
15
  #include <linux/jiffies.h>
2bfb646cd   Richard Purdie   [PATCH] LED: Add ...
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  #include <linux/kernel.h>
  #include <linux/init.h>
  #include <linux/timer.h>
  #include <linux/leds.h>
  
  static void ledtrig_ide_timerfunc(unsigned long data);
  
  DEFINE_LED_TRIGGER(ledtrig_ide);
  static DEFINE_TIMER(ledtrig_ide_timer, ledtrig_ide_timerfunc, 0, 0);
  static int ide_activity;
  static int ide_lastactivity;
  
  void ledtrig_ide_activity(void)
  {
  	ide_activity++;
  	if (!timer_pending(&ledtrig_ide_timer))
  		mod_timer(&ledtrig_ide_timer, jiffies + msecs_to_jiffies(10));
  }
  EXPORT_SYMBOL(ledtrig_ide_activity);
  
  static void ledtrig_ide_timerfunc(unsigned long data)
  {
  	if (ide_lastactivity != ide_activity) {
  		ide_lastactivity = ide_activity;
1bd465e6b   Guennadi Liakhovetski   leds: allow led-d...
40
41
  		/* INT_MAX will set each LED to its maximum brightness */
  		led_trigger_event(ledtrig_ide, INT_MAX);
4d404fd5c   Németh Márton   leds: Cleanup var...
42
  		mod_timer(&ledtrig_ide_timer, jiffies + msecs_to_jiffies(10));
2bfb646cd   Richard Purdie   [PATCH] LED: Add ...
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  	} else {
  		led_trigger_event(ledtrig_ide, LED_OFF);
  	}
  }
  
  static int __init ledtrig_ide_init(void)
  {
  	led_trigger_register_simple("ide-disk", &ledtrig_ide);
  	return 0;
  }
  
  static void __exit ledtrig_ide_exit(void)
  {
  	led_trigger_unregister_simple(ledtrig_ide);
  }
  
  module_init(ledtrig_ide_init);
  module_exit(ledtrig_ide_exit);
  
  MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
  MODULE_DESCRIPTION("LED IDE Disk Activity Trigger");
  MODULE_LICENSE("GPL");