dell-laptop: Fix backlight detection
PATCH 1/1 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.
--- drivers/platform/x86/dell-laptop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/platform/x86/dell-laptop.c +1 -1
@@ -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 ]; }
Signature · 1 line
2.18.0
Quoted 15 lines · Damien Thébault
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)
Quoted 7 lines
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.
I have pushed this to my review and testing queue, thanks!
But I'm going to push this to Linus this week since it's definitely stable material.
Quoted 25 lines
Fixes 549b4930f057 ("dell-smbios: Introduce dispatcher for SMM calls")Signed-off-by Damien Thébault <[email protected]>Tested-by Damien Thébault <[email protected]>Reviewed-by Pali Rohár <[email protected]>Reviewed-by Mario Limonciello <[email protected]>--- drivers/platform/x86/dell-laptop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/platform/x86/dell-laptop.c +1
-2@@ -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 ]; } --2.18.0
Signature · 2 lines
With Best Regards, Andy Shevchenko