ledtrig-disk.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * LED Disk Activity Trigger
  4. *
  5. * Copyright 2006 Openedhand Ltd.
  6. *
  7. * Author: Richard Purdie <[email protected]>
  8. */
  9. #include <linux/kernel.h>
  10. #include <linux/init.h>
  11. #include <linux/leds.h>
  12. #define BLINK_DELAY 30
  13. DEFINE_LED_TRIGGER(ledtrig_disk);
  14. DEFINE_LED_TRIGGER(ledtrig_disk_read);
  15. DEFINE_LED_TRIGGER(ledtrig_disk_write);
  16. DEFINE_LED_TRIGGER(ledtrig_ide);
  17. void ledtrig_disk_activity(bool write)
  18. {
  19. unsigned long blink_delay = BLINK_DELAY;
  20. led_trigger_blink_oneshot(ledtrig_disk,
  21. &blink_delay, &blink_delay, 0);
  22. led_trigger_blink_oneshot(ledtrig_ide,
  23. &blink_delay, &blink_delay, 0);
  24. if (write)
  25. led_trigger_blink_oneshot(ledtrig_disk_write,
  26. &blink_delay, &blink_delay, 0);
  27. else
  28. led_trigger_blink_oneshot(ledtrig_disk_read,
  29. &blink_delay, &blink_delay, 0);
  30. }
  31. EXPORT_SYMBOL(ledtrig_disk_activity);
  32. static int __init ledtrig_disk_init(void)
  33. {
  34. led_trigger_register_simple("disk-activity", &ledtrig_disk);
  35. led_trigger_register_simple("disk-read", &ledtrig_disk_read);
  36. led_trigger_register_simple("disk-write", &ledtrig_disk_write);
  37. led_trigger_register_simple("ide-disk", &ledtrig_ide);
  38. return 0;
  39. }
  40. device_initcall(ledtrig_disk_init);