summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-02-12 16:32:45 +0100
committerMatthew Garrett <matthew.garrett@nebula.com>2014-04-06 18:58:13 +0200
commit119f449866ad18785b0445adaf0d2859c6dbdaa3 (patch)
tree09e215e9f862d4c8ab2fcf0c645644d5616a7e41 /drivers
parentsonypi: Simplify dependencies (diff)
downloadlinux-119f449866ad18785b0445adaf0d2859c6dbdaa3.tar.xz
linux-119f449866ad18785b0445adaf0d2859c6dbdaa3.zip
thinkpad_acpi: Fix inconsistent mute LED after resume
The mute LED states have to be restored after resume. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70351 Cc: <stable@vger.kernel.org> [v3.13+] Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 94bb6157c957..dcc833a0b2fd 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -8447,9 +8447,21 @@ static void mute_led_exit(void)
tpacpi_led_set(i, false);
}
+static void mute_led_resume(void)
+{
+ int i;
+
+ for (i = 0; i < TPACPI_LED_MAX; i++) {
+ struct tp_led_table *t = &led_tables[i];
+ if (t->state >= 0)
+ mute_led_on_off(t, t->state);
+ }
+}
+
static struct ibm_struct mute_led_driver_data = {
.name = "mute_led",
.exit = mute_led_exit,
+ .resume = mute_led_resume,
};
/****************************************************************************