提交 7d3d8840 编写于 作者: H Haridhar Kalvala 提交者: Jiri Kosina

HID: google: Enable PM Full On mode when adjusting backlight

hammer LED backlight brightness is not getting set when USB
device is in suspend state.

This patch fixes the issue by requesting USB HID device to be
in FULLON mode, so that sending hardware output report and
hardware raw request won't fail to set brightness, and set
device back to NORMAL mode once this call returns.
Signed-off-by: NHaridhar Kalvala <haridhar.kalvala@intel.com>
Reviewed-by: NDmitry Torokhov <dtor@chromium.org>
Signed-off-by: NNicolas Boichat <drinkcat@chromium.org>
Signed-off-by: NJiri Kosina <jkosina@suse.cz>
上级 bc774b8c
...@@ -41,6 +41,16 @@ static int hammer_kbd_brightness_set_blocking(struct led_classdev *cdev, ...@@ -41,6 +41,16 @@ static int hammer_kbd_brightness_set_blocking(struct led_classdev *cdev,
led->buf[0] = 0; led->buf[0] = 0;
led->buf[1] = br; led->buf[1] = br;
/*
* Request USB HID device to be in Full On mode, so that sending
* hardware output report and hardware raw request won't fail.
*/
ret = hid_hw_power(led->hdev, PM_HINT_FULLON);
if (ret < 0) {
hid_err(led->hdev, "failed: device not resumed %d\n", ret);
return ret;
}
ret = hid_hw_output_report(led->hdev, led->buf, sizeof(led->buf)); ret = hid_hw_output_report(led->hdev, led->buf, sizeof(led->buf));
if (ret == -ENOSYS) if (ret == -ENOSYS)
ret = hid_hw_raw_request(led->hdev, 0, led->buf, ret = hid_hw_raw_request(led->hdev, 0, led->buf,
...@@ -50,6 +60,10 @@ static int hammer_kbd_brightness_set_blocking(struct led_classdev *cdev, ...@@ -50,6 +60,10 @@ static int hammer_kbd_brightness_set_blocking(struct led_classdev *cdev,
if (ret < 0) if (ret < 0)
hid_err(led->hdev, "failed to set keyboard backlight: %d\n", hid_err(led->hdev, "failed to set keyboard backlight: %d\n",
ret); ret);
/* Request USB HID device back to Normal Mode. */
hid_hw_power(led->hdev, PM_HINT_NORMAL);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册