提交 6e517656 编写于 作者: H Hans de Goede 提交者: sanglipeng

platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe

stable inclusion
from stable-v5.10.164
commit f401062d8dbd55fb86986403d93b1201bc95d4a2
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7T7G4

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f401062d8dbd55fb86986403d93b1201bc95d4a2

--------------------------------

commit ad75bd85 upstream.

The 0x153 version of the kbd backlight control SNC handle has no separate
address to probe if the backlight is there.

This turns the probe call into a set keyboard backlight call with a value
of 0 turning off the keyboard backlight.

Skip probing when there is no separate probe address to avoid this.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1583752
Fixes: 800f2017 ("Keyboard backlight control for some Vaio Fit models")
Signed-off-by: NHans de Goede <hdegoede@redhat.com>
Reviewed-by: NMattia Dongili <malattia@linux.it>
Link: https://lore.kernel.org/r/20221213122943.11123-1-hdegoede@redhat.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Nsanglipeng <sanglipeng1@jd.com>
上级 651087af
...@@ -1892,14 +1892,21 @@ static int sony_nc_kbd_backlight_setup(struct platform_device *pd, ...@@ -1892,14 +1892,21 @@ static int sony_nc_kbd_backlight_setup(struct platform_device *pd,
break; break;
} }
ret = sony_call_snc_handle(handle, probe_base, &result); /*
if (ret) * Only probe if there is a separate probe_base, otherwise the probe call
return ret; * is equivalent to __sony_nc_kbd_backlight_mode_set(0), resulting in
* the keyboard backlight being turned off.
*/
if (probe_base) {
ret = sony_call_snc_handle(handle, probe_base, &result);
if (ret)
return ret;
if ((handle == 0x0137 && !(result & 0x02)) || if ((handle == 0x0137 && !(result & 0x02)) ||
!(result & 0x01)) { !(result & 0x01)) {
dprintk("no backlight keyboard found\n"); dprintk("no backlight keyboard found\n");
return 0; return 0;
}
} }
kbdbl_ctl = kzalloc(sizeof(*kbdbl_ctl), GFP_KERNEL); kbdbl_ctl = kzalloc(sizeof(*kbdbl_ctl), GFP_KERNEL);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册