From 22efa2e170b939907271dba099139ee9ab07e2c4 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 27 Aug 2012 09:31:49 +0800 Subject: [PATCH] --- yaml --- r: 333073 b: refs/heads/master c: 52c47742f79d9240f90af9a6722fe8bb3fa8c0f9 h: refs/heads/master i: 333071: 8de708cb9c31f3830ec0d851c330751f63757795 v: v3 --- [refs] | 2 +- trunk/drivers/leds/led-triggers.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index cad96e992f46..d51365722c97 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 469eba023087d8fa3974827e6bedf874a620d0e7 +refs/heads/master: 52c47742f79d9240f90af9a6722fe8bb3fa8c0f9 diff --git a/trunk/drivers/leds/led-triggers.c b/trunk/drivers/leds/led-triggers.c index b53bf54023f6..262eb4193710 100644 --- a/trunk/drivers/leds/led-triggers.c +++ b/trunk/drivers/leds/led-triggers.c @@ -102,6 +102,12 @@ EXPORT_SYMBOL_GPL(led_trigger_show); void led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig) { unsigned long flags; + char *event = NULL; + char *envp[2]; + const char *name; + + name = trig ? trig->name : "none"; + event = kasprintf(GFP_KERNEL, "TRIGGER=%s", name); /* Remove any existing trigger */ if (led_cdev->trigger) { @@ -124,6 +130,13 @@ void led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig) if (trig->activate) trig->activate(led_cdev); } + + if (event) { + envp[0] = event; + envp[1] = NULL; + kobject_uevent_env(&led_cdev->dev->kobj, KOBJ_CHANGE, envp); + kfree(event); + } } EXPORT_SYMBOL_GPL(led_trigger_set);