summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2017-07-30 16:39:21 +0100
committerRichard Hughes <richard@hughsie.com>2017-07-31 12:00:57 +0100
commit959c093812bfee7caa87f22ecf352e0f286c119e (patch)
tree5c1be223abca646080c32076c9b9f78e387f333b
parent8d45f440bb0809615e7cf1ad6cba3a0484041b38 (diff)
downloadcolord-959c093812bfee7caa87f22ecf352e0f286c119e.tar.gz
huey: Use a different unlock code on the W700 laptop
-rw-r--r--src/sensors/huey/huey-device.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/sensors/huey/huey-device.c b/src/sensors/huey/huey-device.c
index a070158..4508a40 100644
--- a/src/sensors/huey/huey-device.c
+++ b/src/sensors/huey/huey-device.c
@@ -175,14 +175,27 @@ huey_device_unlock (GUsbDevice *device, GError **error)
g_return_val_if_fail (G_USB_IS_DEVICE (device), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- request[0] = HUEY_CMD_UNLOCK;
- request[1] = 'G';
- request[2] = 'r';
- request[3] = 'M';
- request[4] = 'b';
- request[5] = '\0';
- request[6] = '\0';
- request[7] = '\0';
+ /* embedded devices on Lenovo machines use a different unlock code */
+ if (g_usb_device_get_vid (device) == 0x0765 &&
+ g_usb_device_get_pid (device) == 0x5001) {
+ request[0] = HUEY_CMD_UNLOCK;
+ request[1] = 'h';
+ request[2] = 'u';
+ request[3] = 'y';
+ request[4] = 'L';
+ request[5] = '\0';
+ request[6] = '\0';
+ request[7] = '\0';
+ } else {
+ request[0] = HUEY_CMD_UNLOCK;
+ request[1] = 'G';
+ request[2] = 'r';
+ request[3] = 'M';
+ request[4] = 'b';
+ request[5] = '\0';
+ request[6] = '\0';
+ request[7] = '\0';
+ }
/* no idea why the hardware gets 'locked' */
ret = huey_device_send_data (device,