@@ -358,8 +358,7 @@ static enum led_brightness eco_led_get(struct led_classdev *cdev)
static int set_lcd_level(int level)
{
- acpi_status status = AE_OK;
- acpi_handle handle = NULL;
+ acpi_status status;
char *method;
switch (use_alt_lcd_levels) {
@@ -377,16 +376,14 @@ static int set_lcd_level(int level)
if (level < 0 || level >= fujitsu_bl->max_brightness)
return -EINVAL;
- status = acpi_get_handle(fujitsu_bl->acpi_handle, method, &handle);
+ status = acpi_execute_simple_method(fujitsu_bl->acpi_handle, method,
+ level);
if (ACPI_FAILURE(status)) {
- vdbg_printk(FUJLAPTOP_DBG_ERROR, "%s not present\n", method);
+ vdbg_printk(FUJLAPTOP_DBG_ERROR, "Failed to evaluate %s\n",
+ method);
return -ENODEV;
}
- status = acpi_execute_simple_method(handle, NULL, level);
- if (ACPI_FAILURE(status))
- return -ENODEV;
-
return 0;
}
acpi_execute_simple_method() takes a method parameter which tells it to look for the given method underneath the given handle, so calling acpi_get_handle() beforehand is redundant. Replace the call to acpi_get_handle() with a call to acpi_execute_simple_method(), thus eliminating the need for a local variable storing the handle. Update debug message to reflect this change. Also do not assign a default value to status as it has no influence on execution flow. Signed-off-by: Michał Kępień <kernel@kempniu.pl> --- drivers/platform/x86/fujitsu-laptop.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-)