ledtrig-disk.c 1006 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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 <rpurdie@openedhand.com>
  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. void ledtrig_disk_activity(bool write)
  17. {
  18. led_trigger_blink_oneshot(ledtrig_disk, BLINK_DELAY, BLINK_DELAY, 0);
  19. if (write)
  20. led_trigger_blink_oneshot(ledtrig_disk_write,
  21. BLINK_DELAY, BLINK_DELAY, 0);
  22. else
  23. led_trigger_blink_oneshot(ledtrig_disk_read,
  24. BLINK_DELAY, BLINK_DELAY, 0);
  25. }
  26. EXPORT_SYMBOL(ledtrig_disk_activity);
  27. static int __init ledtrig_disk_init(void)
  28. {
  29. led_trigger_register_simple("disk-activity", &ledtrig_disk);
  30. led_trigger_register_simple("disk-read", &ledtrig_disk_read);
  31. led_trigger_register_simple("disk-write", &ledtrig_disk_write);
  32. return 0;
  33. }
  34. device_initcall(ledtrig_disk_init);