From 74c08a38875ffa9989c3100947650ac8a388c189 Mon Sep 17 00:00:00 2001 From: Carlos Corbacho Date: Fri, 28 Dec 2007 13:21:23 +0000 Subject: [PATCH] acer_acpi - Fix set method for AMW0 V2 mail LED --- acer_acpi.c | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/acer_acpi.c b/acer_acpi.c index 49a4cf1..970fc19 100644 --- a/acer_acpi.c +++ b/acer_acpi.c @@ -835,44 +835,42 @@ dispatch_write(struct file *file, const char __user *buffer, */ static acpi_status get_u32(u32 *value, u32 cap) { - acpi_status status = AE_BAD_ADDRESS; + DEBUG(2, " get_u32: cap=%u, value=%u\n", cap, *value); + + if (!(interface->capability & cap)) + return AE_BAD_PARAMETER; - DEBUG(2, " get_u32: cap=%u, value=%u\n", - cap, interface->type); switch (interface->type) { case ACER_AMW0: - status = AMW0_get_u32(value, cap, interface); - break; + return AMW0_get_u32(value, cap, interface); case ACER_AMW0_V2: - if (cap == ACER_CAP_MAILLED) { - status = AMW0_get_u32(value, cap, interface); - break; - } + if (cap == ACER_CAP_MAILLED) + return AMW0_get_u32(value, cap, interface); case ACER_WMID: - status = WMID_get_u32(value, cap, interface); - break; + return WMID_get_u32(value, cap, interface); + default: + return AE_BAD_PARAMETER; } - DEBUG(2, " Returning from get_u32:\n"); - return status; } static acpi_status set_u32(u32 value, u32 cap) { - DEBUG(2, " set_u32: cap=%u, value=%u\n", cap, value); - if (interface->capability & cap) { - switch (interface->type) { - case ACER_AMW0: + if (!(interface->capability & cap)) + return AE_BAD_PARAMETER; + + switch (interface->type) { + case ACER_AMW0: + return AMW0_set_u32(value, cap, interface); + case ACER_AMW0_V2: + if (cap == ACER_CAP_MAILLED) return AMW0_set_u32(value, cap, interface); - case ACER_AMW0_V2: - case ACER_WMID: - return WMID_set_u32(value, cap, interface); - default: - return AE_BAD_PARAMETER; - } + case ACER_WMID: + return WMID_set_u32(value, cap, interface); + default: + return AE_BAD_PARAMETER; } - return AE_BAD_PARAMETER; } static void __init acer_commandline_init(void) -- 2.11.4.GIT