diff options
author | Richard Hughes <richard@hughsie.com> | 2017-07-30 16:39:21 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2017-07-31 12:00:57 +0100 |
commit | 959c093812bfee7caa87f22ecf352e0f286c119e (patch) | |
tree | 5c1be223abca646080c32076c9b9f78e387f333b | |
parent | 8d45f440bb0809615e7cf1ad6cba3a0484041b38 (diff) | |
download | colord-959c093812bfee7caa87f22ecf352e0f286c119e.tar.gz |
huey: Use a different unlock code on the W700 laptop
-rw-r--r-- | src/sensors/huey/huey-device.c | 29 |
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, |