summaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorDamien Thébault <damien@dtbo.net>2018-07-18 12:06:01 +0200
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>2018-07-20 15:29:59 +0300
commit2502e5a025935b7b476b69eda4959b3c4022c72b (patch)
tree5c59f0ba2b6b325145b2a1b9594ff9c5f94de316 /drivers/platform
parent9d3cce1e8b8561fed5f383d22a4d6949db4eadbe (diff)
downloadlinux-2502e5a025935b7b476b69eda4959b3c4022c72b.tar.gz
linux-2502e5a025935b7b476b69eda4959b3c4022c72b.tar.bz2
linux-2502e5a025935b7b476b69eda4959b3c4022c72b.zip
platform/x86: dell-laptop: Fix backlight detection
Fix return code check for "max brightness" ACPI call. The Dell laptop ACPI video brightness control is not present on dell laptops anymore, but was present in older kernel versions. The code that checks the return value is incorrect since the SMM refactoring. The old code was: if (buffer->output[0] == 0) Which was changed to: ret = dell_send_request(...) if (ret) However, dell_send_request() will return 0 if buffer->output[0] == 0, so we must change the check to: if (ret == 0) This issue was found on a Dell M4800 laptop, and the fix tested on it as well. Fixes: 549b4930f057 ("dell-smbios: Introduce dispatcher for SMM calls") Signed-off-by: Damien Thébault <damien@dtbo.net> Tested-by: Damien Thébault <damien@dtbo.net> Reviewed-by: Pali Rohár <pali.rohar@gmail.com> Reviewed-by: Mario Limonciello <mario.limonciello@dell.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/dell-laptop.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index f1fa8612db40..06978c14c83b 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -2185,7 +2185,7 @@ static int __init dell_init(void)
dell_fill_request(&buffer, token->location, 0, 0, 0);
ret = dell_send_request(&buffer,
CLASS_TOKEN_READ, SELECT_TOKEN_AC);
- if (ret)
+ if (ret == 0)
max_intensity = buffer.output[3];
}