Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2] USB: quirks: disable LPM for Logitech UVC devices From: Kyle Williams Message-Id: <20181208004641.240699-1-kdgwill@google.com> Date: Fri, 7 Dec 2018 19:46:38 -0500 To: linux-kernel@vger.kernel.org Cc: kdgwill@chromium.org, Greg Kroah-Hartman , Alan Stern , Mathias Nyman , Nicolas Boichat , Jon Flatley , Felipe Balbi , Kai-Heng Feng , Danilo Krummrich , Kuppuswamy Sathyanarayanan , =?UTF-8?q?Maxence=20Dupr=C3=A8s?= , Kamil Lulko , Emmanuel Pescosta , linux-usb@vger.kernel.org List-ID: RnJvbTogS3lsZSBXaWxsaWFtcyA8a2Rnd2lsbEBjaHJvbWl1bS5vcmc+CgpEZXNjcmlwdGlvbjog U29tZSBVU0IgZGV2aWNlIC8gaG9zdCBjb250cm9sbGVyIGNvbWJpbmF0aW9ucyBzZWVtIHRvIGhh dmUKcHJvYmxlbXMgd2l0aCBMaW5rIFBvd2VyIG1hbmFnZW1lbnQuIEluIHBhcnRpY3VsYXIgaXQg aXMgZGVzY3JpYmVkIHRoYXQKdGhlIGNvbWJpbmF0aW9uIG9mIGNlcnRhaW4gTG9naXRlY2ggdXZj IGRldmljZXMgYW5kIG90aGVyIHBvd2VyZWQgbWVkaWEKZGV2aWNlcyBzdWNoIGNhdXNlcyAnbm90 IGVub3VnaCBiYW5kd2lkdGggZm9yIG5ldyBkZXZpY2Ugc3RhdGUnIGVycm9yLgoKVGhpcyBwYXRj aCBlbmFibGVzIHRoZSBVU0JfUVVJUktfTk9fTFBNIHF1aXJrIGVudHJpZXMgZm9yIGFsbCBjb25u ZWN0ZWQKTG9naXRlY2ggVVZDIGRldmljZXMgaW5kaWNhdGluZyBMUE0gc2hvdWxkIHJlbWFpbiBk aXNhYmxlZCBmb3IgdGhlIGRldmljZS4KClNpZ25lZC1vZmYtYnk6IEt5bGUgV2lsbGlhbXMgPGtk Z3dpbGxAY2hyb21pdW0ub3JnPgotLS0KCkNoYW5nZXMgaW4gdjI6Ci0gY2hhbmdlZCBjb21taXQg bWVzc2FnZQotIGRpc2JsZSBscG0gZm9yIGFsbCBsb2dpdGVjaCB1dmMgZGV2aWNlcyBpbnN0ZWFk IG9mIGxpc3RpbmcgbWFudWFsbHkKLSBjaGFuZ2VzIHRvIGFsbG93IHRoZSBscG0gdG8gY29ycmVj dGx5IGJlIGRpc2FibGVkIGFmdGVyIGVudW1lcmF0aW9uCgogZHJpdmVycy91c2IvY29yZS9odWIu YyAgICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVy cy91c2IvY29yZS9xdWlya3MuYyB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlv bnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHVi LmMgYi9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCmluZGV4IDBmOTM4MWI2OWEzYi4uOGYzNjZlYzRk MjFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCisrKyBiL2RyaXZlcnMvdXNi L2NvcmUvaHViLmMKQEAgLTM2NSw2ICszNjUsNTEgQEAgc3RhdGljIHZvaWQgdXNiX3NldF9scG1f cGFyYW1ldGVycyhzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikKIAl1c2Jfc2V0X2xwbV9zZWwodWRl diwgJnVkZXYtPnUyX3BhcmFtcyk7CiB9CiAKKy8qCisgKiBUaGVyZSBhcmUgcmVwb3J0cyBvZiBV U0IgMy4wIGRldmljZXMgdGhhdCBzYXkgdGhleSBzdXBwb3J0IFVTQiAyLjAgTGluayBQTQorICog d2hlbiB0aGV5J3JlIHBsdWdnZWQgaW50byBhIFVTQiAyLjAgcG9ydCwgYnV0IHRoZXkgZG9uJ3Qg d29yayB3aGVuIExQTSBpcworICogZW5hYmxlZC4KKyAqCisgKiBPbmx5IGVuYWJsZSBVU0IgMi4w IExpbmsgUE0gaWYgdGhlIHBvcnQgaXMgaW50ZXJuYWwgKGhhcmR3aXJlZCksIG9yIHRoZQorICog ZGV2aWNlIHNheXMgaXQgc3VwcG9ydHMgdGhlIG5ldyBVU0IgMi4wIExpbmsgUE0gZXJyYXRhIGJ5 IHNldHRpbmcgdGhlIEJFU0wKKyAqIHN1cHBvcnQgYml0IGluIHRoZSBCT1MgZGVzY3JpcHRvci4K KyAqLworc3RhdGljIHZvaWQgaHViX3NldF9pbml0aWFsX3VzYjJfbHBtX3BvbGljeShzdHJ1Y3Qg dXNiX2RldmljZSAqdWRldikKK3sKKwlzdHJ1Y3QgdXNiX2h1YiAqaHViID0gdXNiX2h1Yl90b19z dHJ1Y3RfaHViKHVkZXYtPnBhcmVudCk7CisJaW50IGNvbm5lY3RfdHlwZSA9IFVTQl9QT1JUX0NP Tk5FQ1RfVFlQRV9VTktOT1dOOworCisJaWYgKCF1ZGV2LT51c2IyX2h3X2xwbV9jYXBhYmxlIHx8 ICF1ZGV2LT5ib3MpCisJCXJldHVybjsKKworCWlmIChodWIpCisJCWNvbm5lY3RfdHlwZSA9IGh1 Yi0+cG9ydHNbdWRldi0+cG9ydG51bSAtIDFdLT5jb25uZWN0X3R5cGU7CisKKwlpZiAoKHVkZXYt PmJvcy0+ZXh0X2NhcC0+Ym1BdHRyaWJ1dGVzICYgY3B1X3RvX2xlMzIoVVNCX0JFU0xfU1VQUE9S VCkpCisJCQl8fCBjb25uZWN0X3R5cGUgPT0gVVNCX1BPUlRfQ09OTkVDVF9UWVBFX0hBUkRfV0lS RUQpIHsKKwkJdWRldi0+dXNiMl9od19scG1fYWxsb3dlZCA9IDE7CisJCXVzYl9zZXRfdXNiMl9o YXJkd2FyZV9scG0odWRldiwgMSk7CisJfQorfQorCit2b2lkIHVzYl91cGRhdGVfZGV2aWNlX2xw bShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikKK3sKKwlpbnQg cmV0dmFsOworCisJaWYgKHVkZXYtPnd1c2IgPT0gMCAmJiBsZTE2X3RvX2NwdSh1ZGV2LT5kZXNj cmlwdG9yLmJjZFVTQikgPj0gMHgwMjAxKSB7CisJCXJldHZhbCA9IHVzYl9nZXRfYm9zX2Rlc2Ny aXB0b3IodWRldik7CisJCWlmICghcmV0dmFsKSB7CisJCQl1ZGV2LT5scG1fY2FwYWJsZSA9IHVz Yl9kZXZpY2Vfc3VwcG9ydHNfbHBtKHVkZXYpOworCQkJdXNiX3NldF9scG1fcGFyYW1ldGVycyh1 ZGV2KTsKKwkJfQorCX0KKworCS8qIG5vdGlmeSBIQ0QgdGhhdCB3ZSBoYXZlIGEgZGV2aWNlIGNv bm5lY3RlZCBhbmQgYWRkcmVzc2VkICovCisJaWYgKGhjZC0+ZHJpdmVyLT51cGRhdGVfZGV2aWNl KQorCQloY2QtPmRyaXZlci0+dXBkYXRlX2RldmljZShoY2QsIHVkZXYpOworCWh1Yl9zZXRfaW5p dGlhbF91c2IyX2xwbV9wb2xpY3kodWRldik7Cit9CisKIC8qIFVTQiAyLjAgc3BlYyBTZWN0aW9u IDExLjI0LjQuNSAqLwogc3RhdGljIGludCBnZXRfaHViX2Rlc2NyaXB0b3Ioc3RydWN0IHVzYl9k ZXZpY2UgKmhkZXYsCiAJCXN0cnVjdCB1c2JfaHViX2Rlc2NyaXB0b3IgKmRlc2MpCkBAIC0yMjk1 LDcgKzIzNDAsNiBAQCBzdGF0aWMgaW50IHVzYl9lbnVtZXJhdGVfZGV2aWNlX290ZyhzdHJ1Y3Qg dXNiX2RldmljZSAqdWRldikKIAlyZXR1cm4gZXJyOwogfQogCi0KIC8qKgogICogdXNiX2VudW1l cmF0ZV9kZXZpY2UgLSBSZWFkIGRldmljZSBjb25maWdzL2ludGZzL290ZyAodXNiY29yZS1pbnRl cm5hbCkKICAqIEB1ZGV2OiBuZXdseSBhZGRyZXNzZWQgZGV2aWNlIChpbiBBRERSRVNTIHN0YXRl KQpAQCAtMjM1MSw2ICsyMzk1LDggQEAgc3RhdGljIGludCB1c2JfZW51bWVyYXRlX2RldmljZShz dHJ1Y3QgdXNiX2RldmljZSAqdWRldikKIAogCXVzYl9kZXRlY3RfaW50ZXJmYWNlX3F1aXJrcyh1 ZGV2KTsKIAorCXVzYl91cGRhdGVfZGV2aWNlX2xwbShoY2QsIHVkZXYpOworCiAJcmV0dXJuIDA7 CiB9CiAKQEAgLTQ0MDIsMzMgKzQ0NDgsNiBAQCBzdGF0aWMgaW50IGh1Yl9zZXRfYWRkcmVzcyhz dHJ1Y3QgdXNiX2RldmljZSAqdWRldiwgaW50IGRldm51bSkKIAlyZXR1cm4gcmV0dmFsOwogfQog Ci0vKgotICogVGhlcmUgYXJlIHJlcG9ydHMgb2YgVVNCIDMuMCBkZXZpY2VzIHRoYXQgc2F5IHRo ZXkgc3VwcG9ydCBVU0IgMi4wIExpbmsgUE0KLSAqIHdoZW4gdGhleSdyZSBwbHVnZ2VkIGludG8g YSBVU0IgMi4wIHBvcnQsIGJ1dCB0aGV5IGRvbid0IHdvcmsgd2hlbiBMUE0gaXMKLSAqIGVuYWJs ZWQuCi0gKgotICogT25seSBlbmFibGUgVVNCIDIuMCBMaW5rIFBNIGlmIHRoZSBwb3J0IGlzIGlu dGVybmFsIChoYXJkd2lyZWQpLCBvciB0aGUKLSAqIGRldmljZSBzYXlzIGl0IHN1cHBvcnRzIHRo ZSBuZXcgVVNCIDIuMCBMaW5rIFBNIGVycmF0YSBieSBzZXR0aW5nIHRoZSBCRVNMCi0gKiBzdXBw b3J0IGJpdCBpbiB0aGUgQk9TIGRlc2NyaXB0b3IuCi0gKi8KLXN0YXRpYyB2b2lkIGh1Yl9zZXRf aW5pdGlhbF91c2IyX2xwbV9wb2xpY3koc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpCi17Ci0Jc3Ry dWN0IHVzYl9odWIgKmh1YiA9IHVzYl9odWJfdG9fc3RydWN0X2h1Yih1ZGV2LT5wYXJlbnQpOwot CWludCBjb25uZWN0X3R5cGUgPSBVU0JfUE9SVF9DT05ORUNUX1RZUEVfVU5LTk9XTjsKLQotCWlm ICghdWRldi0+dXNiMl9od19scG1fY2FwYWJsZSB8fCAhdWRldi0+Ym9zKQotCQlyZXR1cm47Ci0K LQlpZiAoaHViKQotCQljb25uZWN0X3R5cGUgPSBodWItPnBvcnRzW3VkZXYtPnBvcnRudW0gLSAx XS0+Y29ubmVjdF90eXBlOwotCi0JaWYgKCh1ZGV2LT5ib3MtPmV4dF9jYXAtPmJtQXR0cmlidXRl cyAmIGNwdV90b19sZTMyKFVTQl9CRVNMX1NVUFBPUlQpKSB8fAotCQkJY29ubmVjdF90eXBlID09 IFVTQl9QT1JUX0NPTk5FQ1RfVFlQRV9IQVJEX1dJUkVEKSB7Ci0JCXVkZXYtPnVzYjJfaHdfbHBt X2FsbG93ZWQgPSAxOwotCQl1c2Jfc2V0X3VzYjJfaGFyZHdhcmVfbHBtKHVkZXYsIDEpOwotCX0K LX0KLQogc3RhdGljIGludCBodWJfZW5hYmxlX2RldmljZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRl dikKIHsKIAlzdHJ1Y3QgdXNiX2hjZCAqaGNkID0gYnVzX3RvX2hjZCh1ZGV2LT5idXMpOwpAQCAt NDc3OSwxOSArNDc5OCw5IEBAIGh1Yl9wb3J0X2luaXQoc3RydWN0IHVzYl9odWIgKmh1Yiwgc3Ry dWN0IHVzYl9kZXZpY2UgKnVkZXYsIGludCBwb3J0MSwKIAogCXVzYl9kZXRlY3RfcXVpcmtzKHVk ZXYpOwogCi0JaWYgKHVkZXYtPnd1c2IgPT0gMCAmJiBsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlw dG9yLmJjZFVTQikgPj0gMHgwMjAxKSB7Ci0JCXJldHZhbCA9IHVzYl9nZXRfYm9zX2Rlc2NyaXB0 b3IodWRldik7Ci0JCWlmICghcmV0dmFsKSB7Ci0JCQl1ZGV2LT5scG1fY2FwYWJsZSA9IHVzYl9k ZXZpY2Vfc3VwcG9ydHNfbHBtKHVkZXYpOwotCQkJdXNiX3NldF9scG1fcGFyYW1ldGVycyh1ZGV2 KTsKLQkJfQotCX0KKwl1c2JfdXBkYXRlX2RldmljZV9scG0oaGNkLCB1ZGV2KTsKIAogCXJldHZh bCA9IDA7Ci0JLyogbm90aWZ5IEhDRCB0aGF0IHdlIGhhdmUgYSBkZXZpY2UgY29ubmVjdGVkIGFu ZCBhZGRyZXNzZWQgKi8KLQlpZiAoaGNkLT5kcml2ZXItPnVwZGF0ZV9kZXZpY2UpCi0JCWhjZC0+ ZHJpdmVyLT51cGRhdGVfZGV2aWNlKGhjZCwgdWRldik7Ci0JaHViX3NldF9pbml0aWFsX3VzYjJf bHBtX3BvbGljeSh1ZGV2KTsKIGZhaWw6CiAJaWYgKHJldHZhbCkgewogCQlodWJfcG9ydF9kaXNh YmxlKGh1YiwgcG9ydDEsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9xdWlya3Mu YyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMKaW5kZXggMDY5MGZjZmYwZWEyLi5iYmJiN2U2 ZGY5NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMKKysrIGIvZHJpdmVy cy91c2IvY29yZS9xdWlya3MuYwpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgdXNiX2RldmljZV9pZCB1c2JfcXVpcmtfbGlzdFtdID0gewogc3RhdGljIGNvbnN0IHN0cnVj dCB1c2JfZGV2aWNlX2lkIHVzYl9pbnRlcmZhY2VfcXVpcmtfbGlzdFtdID0gewogCS8qIExvZ2l0 ZWNoIFVWQyBDYW1lcmFzICovCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTygweDA0 NmQsIFVTQl9DTEFTU19WSURFTywgMSwgMCksCi0JICAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktf UkVTRVRfUkVTVU1FIH0sCisJICAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1F IHwgVVNCX1FVSVJLX05PX0xQTSB9LAogCiAJeyB9ICAvKiB0ZXJtaW5hdGluZyBlbnRyeSBtdXN0 IGJlIGxhc3QgKi8KIH07Cg==