All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] HID: google: Enable PM Full On mode when adjusting backlight
@ 2018-03-28  6:16 Nicolas Boichat
  2018-03-28 14:13 ` Jiri Kosina
  0 siblings, 1 reply; 2+ messages in thread
From: Nicolas Boichat @ 2018-03-28  6:16 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Benjamin Tissoires, linux-kernel, linux-input, groeck, dtor,
	Haridhar Kalvala

From: Haridhar Kalvala <haridhar.kalvala@intel.com>

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: Haridhar Kalvala <haridhar.kalvala@intel.com>
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
---
 drivers/hid/hid-google-hammer.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Changes from version on Chromium OS gerrit
(https://chromium-review.googlesource.com/735259):
 - Reworded and reflowed commit message, as well as comment in code.

diff --git a/drivers/hid/hid-google-hammer.c b/drivers/hid/hid-google-hammer.c
index 6486469ce0f64..7b8e17b03cb86 100644
--- a/drivers/hid/hid-google-hammer.c
+++ b/drivers/hid/hid-google-hammer.c
@@ -41,6 +41,16 @@ static int hammer_kbd_brightness_set_blocking(struct led_classdev *cdev,
 	led->buf[0] = 0;
 	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));
 	if (ret == -ENOSYS)
 		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,
 	if (ret < 0)
 		hid_err(led->hdev, "failed to set keyboard backlight: %d\n",
 			ret);
+
+	/* Request USB HID device back to Normal Mode. */
+	hid_hw_power(led->hdev, PM_HINT_NORMAL);
+
 	return ret;
 }
 
-- 
2.17.0.rc1.321.gba9d0f2565-goog

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] HID: google: Enable PM Full On mode when adjusting backlight
  2018-03-28  6:16 [PATCH] HID: google: Enable PM Full On mode when adjusting backlight Nicolas Boichat
@ 2018-03-28 14:13 ` Jiri Kosina
  0 siblings, 0 replies; 2+ messages in thread
From: Jiri Kosina @ 2018-03-28 14:13 UTC (permalink / raw)
  To: Nicolas Boichat
  Cc: Benjamin Tissoires, linux-kernel, linux-input, groeck, dtor,
	Haridhar Kalvala

On Wed, 28 Mar 2018, Nicolas Boichat wrote:

> From: Haridhar Kalvala <haridhar.kalvala@intel.com>
> 
> 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: Haridhar Kalvala <haridhar.kalvala@intel.com>
> Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
> Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>

Applied to for-4.17/google-hammer. Thanks,

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-03-28 14:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-28  6:16 [PATCH] HID: google: Enable PM Full On mode when adjusting backlight Nicolas Boichat
2018-03-28 14:13 ` Jiri Kosina

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.