aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/platform/x86/fujitsu-laptop.c54
1 files changed, 16 insertions, 38 deletions
diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
index f90b129ff2c2..46d4f7265d20 100644
--- a/drivers/platform/x86/fujitsu-laptop.c
+++ b/drivers/platform/x86/fujitsu-laptop.c
@@ -345,41 +345,26 @@ static int set_lcd_level(int level)
{
acpi_status status = AE_OK;
acpi_handle handle = NULL;
-
- vdbg_printk(FUJLAPTOP_DBG_TRACE, "set lcd level via SBLL [%d]\n",
- level);
-
- if (level < 0 || level >= fujitsu_bl->max_brightness)
- return -EINVAL;
-
- status = acpi_get_handle(fujitsu_bl->acpi_handle, "SBLL", &handle);
- if (ACPI_FAILURE(status)) {
- vdbg_printk(FUJLAPTOP_DBG_ERROR, "SBLL not present\n");
- return -ENODEV;
+ char *method;
+
+ switch (use_alt_lcd_levels) {
+ case 1:
+ method = "SBL2";
+ break;
+ default:
+ method = "SBLL";
+ break;
}
-
- status = acpi_execute_simple_method(handle, NULL, level);
- if (ACPI_FAILURE(status))
- return -ENODEV;
-
- return 0;
-}
-
-static int set_lcd_level_alt(int level)
-{
- acpi_status status = AE_OK;
- acpi_handle handle = NULL;
-
- vdbg_printk(FUJLAPTOP_DBG_TRACE, "set lcd level via SBL2 [%d]\n",
- level);
+ vdbg_printk(FUJLAPTOP_DBG_TRACE, "set lcd level via %s [%d]\n",
+ method, level);
if (level < 0 || level >= fujitsu_bl->max_brightness)
return -EINVAL;
- status = acpi_get_handle(fujitsu_bl->acpi_handle, "SBL2", &handle);
+ status = acpi_get_handle(fujitsu_bl->acpi_handle, method, &handle);
if (ACPI_FAILURE(status)) {
- vdbg_printk(FUJLAPTOP_DBG_ERROR, "SBL2 not present\n");
+ vdbg_printk(FUJLAPTOP_DBG_ERROR, "%s not present\n", method);
return -ENODEV;
}
@@ -448,10 +433,7 @@ static int bl_update_status(struct backlight_device *b)
"Unable to adjust backlight power, error code %i\n",
ret);
- if (use_alt_lcd_levels)
- ret = set_lcd_level_alt(b->props.brightness);
- else
- ret = set_lcd_level(b->props.brightness);
+ ret = set_lcd_level(b->props.brightness);
if (ret != 0)
vdbg_printk(FUJLAPTOP_DBG_ERROR,
"Unable to adjust LCD brightness, error code %i\n",
@@ -664,12 +646,8 @@ static void acpi_fujitsu_bl_notify(struct acpi_device *device, u32 event)
if (oldb == newb)
return;
- if (disable_brightness_adjust != 1) {
- if (use_alt_lcd_levels)
- set_lcd_level_alt(newb);
- else
- set_lcd_level(newb);
- }
+ if (disable_brightness_adjust != 1)
+ set_lcd_level(newb);
sparse_keymap_report_event(input, oldb < newb, 1, true);
}