From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/6] xhci: workaround for AMD Promontory disabled ports wakeup From: Mathias Nyman Message-Id: <1518438291-5068-2-git-send-email-mathias.nyman@linux.intel.com> Date: Mon, 12 Feb 2018 14:24:46 +0200 To: gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, Joe Lee , Mathias Nyman List-ID: RnJvbTogSm9lIExlZSA8YXNtdC5zd2ZhZUBnbWFpbC5jb20+CgpGb3IgQU1EIFByb21vbnRvcnkg eEhDSSBob3N0LCBhbHRob3VnaCB5b3UgY2FuIGRpc2FibGUgVVNCIHBvcnRzIGluCkJJT1Mgc2V0 dGluZ3MsIHRob3NlIHBvcnRzIHdpbGwgYmUgZW5hYmxlZCBhbnl3YXkgYWZ0ZXIgeW91IHJlbW92 ZSBhCmRldmljZSBvbiB0aGF0IHBvcnQgYW5kIHJlLXBsdWcgaXQgaW4gYWdhaW4uIEl0J3MgYSBr bm93biBsaW1pdGF0aW9uIG9mCnRoZSBjaGlwLiBBcyBhIHdvcmthcm91bmQgd2UgY2FuIGNsZWFy IHRoZSBQT1JUX1dBS0VfQklUUy4KCltjb21taXQgYW5kIGNvZGUgY29tbWVudCByZXBocmFzaW5n IC1NYXRoaWFzXQpTaWduZWQtb2ZmLWJ5OiBKb2UgTGVlIDxhc210LnN3ZmFlQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogTWF0aGlhcyBOeW1hbiA8bWF0aGlhcy5ueW1hbkBsaW51eC5pbnRlbC5j b20+Ci0tLQogZHJpdmVycy91c2IvaG9zdC9wY2ktcXVpcmtzLmMgfCAxMDkgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL3VzYi9ob3N0L3BjaS1xdWly a3MuaCB8ICAgNSArKwogZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jICAgfCAgIDcgKysrCiBk cml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMgICB8ICAxMSArKysrKwogZHJpdmVycy91c2IvaG9z dC94aGNpLmggICAgICAgfCAgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3BjaS1xdWly a3MuYyBiL2RyaXZlcnMvdXNiL2hvc3QvcGNpLXF1aXJrcy5jCmluZGV4IDE2MTUzNjcuLjY3YWQ0 YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvcGNpLXF1aXJrcy5jCisrKyBiL2RyaXZl cnMvdXNiL2hvc3QvcGNpLXF1aXJrcy5jCkBAIC02Niw2ICs2NiwyMyBAQAogI2RlZmluZQlBWF9J TkRYQwkJMHgzMAogI2RlZmluZQlBWF9EQVRBQwkJMHgzNAogCisjZGVmaW5lIFBUX0FERFJfSU5E WAkJMHhFOAorI2RlZmluZSBQVF9SRUFEX0lORFgJCTB4RTQKKyNkZWZpbmUgUFRfU0lHXzFfQURE UgkJMHhBNTIwCisjZGVmaW5lIFBUX1NJR18yX0FERFIJCTB4QTUyMQorI2RlZmluZSBQVF9TSUdf M19BRERSCQkweEE1MjIKKyNkZWZpbmUgUFRfU0lHXzRfQUREUgkJMHhBNTIzCisjZGVmaW5lIFBU X1NJR18xX0RBVEEJCTB4NzgKKyNkZWZpbmUgUFRfU0lHXzJfREFUQQkJMHg1NgorI2RlZmluZSBQ VF9TSUdfM19EQVRBCQkweDM0CisjZGVmaW5lIFBUX1NJR180X0RBVEEJCTB4MTIKKyNkZWZpbmUg UFQ0X1AxX1JFRwkJMHhCNTIxCisjZGVmaW5lIFBUNF9QMl9SRUcJCTB4QjUyMgorI2RlZmluZSBQ VDJfUDFfUkVHCQkweEQ1MjAKKyNkZWZpbmUgUFQyX1AyX1JFRwkJMHhENTIxCisjZGVmaW5lIFBU MV9QMV9SRUcJCTB4RDUyMgorI2RlZmluZSBQVDFfUDJfUkVHCQkweEQ1MjMKKwogI2RlZmluZQlO Ql9QQ0lFX0lORFhfQUREUgkweGUwCiAjZGVmaW5lCU5CX1BDSUVfSU5EWF9EQVRBCTB4ZTQKICNk ZWZpbmUJUENJRV9QX0NOVEwJCTB4MTAwNDAKQEAgLTUxMyw2ICs1MzAsOTggQEAgdm9pZCB1c2Jf YW1kX2Rldl9wdXQodm9pZCkKIEVYUE9SVF9TWU1CT0xfR1BMKHVzYl9hbWRfZGV2X3B1dCk7CiAK IC8qCisgKiBDaGVjayBpZiBwb3J0IGlzIGRpc2FibGVkIGluIEJJT1Mgb24gQU1EIFByb21vbnRv cnkgaG9zdC4KKyAqIEJJT1MgRGlzYWJsZWQgcG9ydHMgbWF5IHdha2Ugb24gY29ubmVjdC9kaXNj b25uZWN0IGFuZCBuZWVkCisgKiBkcml2ZXIgd29ya2Fyb3VuZCB0byBrZWVwIHRoZW0gZGlzYWJs ZWQuCisgKiBSZXR1cm5zIHRydWUgaWYgcG9ydCBpcyBtYXJrZWQgZGlzYWJsZWQuCisgKi8KK2Jv b2wgdXNiX2FtZF9wdF9jaGVja19wb3J0KHN0cnVjdCBkZXZpY2UgKmRldmljZSwgaW50IHBvcnQp Cit7CisJdW5zaWduZWQgY2hhciB2YWx1ZSwgcG9ydF9zaGlmdDsKKwlzdHJ1Y3QgcGNpX2RldiAq cGRldjsKKwl1MTYgcmVnOworCisJcGRldiA9IHRvX3BjaV9kZXYoZGV2aWNlKTsKKwlwY2lfd3Jp dGVfY29uZmlnX3dvcmQocGRldiwgUFRfQUREUl9JTkRYLCBQVF9TSUdfMV9BRERSKTsKKworCXBj aV9yZWFkX2NvbmZpZ19ieXRlKHBkZXYsIFBUX1JFQURfSU5EWCwgJnZhbHVlKTsKKwlpZiAodmFs dWUgIT0gUFRfU0lHXzFfREFUQSkKKwkJcmV0dXJuIGZhbHNlOworCisJcGNpX3dyaXRlX2NvbmZp Z193b3JkKHBkZXYsIFBUX0FERFJfSU5EWCwgUFRfU0lHXzJfQUREUik7CisKKwlwY2lfcmVhZF9j b25maWdfYnl0ZShwZGV2LCBQVF9SRUFEX0lORFgsICZ2YWx1ZSk7CisJaWYgKHZhbHVlICE9IFBU X1NJR18yX0RBVEEpCisJCXJldHVybiBmYWxzZTsKKworCXBjaV93cml0ZV9jb25maWdfd29yZChw ZGV2LCBQVF9BRERSX0lORFgsIFBUX1NJR18zX0FERFIpOworCisJcGNpX3JlYWRfY29uZmlnX2J5 dGUocGRldiwgUFRfUkVBRF9JTkRYLCAmdmFsdWUpOworCWlmICh2YWx1ZSAhPSBQVF9TSUdfM19E QVRBKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwY2lfd3JpdGVfY29uZmlnX3dvcmQocGRldiwgUFRf QUREUl9JTkRYLCBQVF9TSUdfNF9BRERSKTsKKworCXBjaV9yZWFkX2NvbmZpZ19ieXRlKHBkZXYs IFBUX1JFQURfSU5EWCwgJnZhbHVlKTsKKwlpZiAodmFsdWUgIT0gUFRfU0lHXzRfREFUQSkKKwkJ cmV0dXJuIGZhbHNlOworCisJLyogQ2hlY2sgZGlzYWJsZWQgcG9ydCBzZXR0aW5nLCBpZiBiaXQg aXMgc2V0IHBvcnQgaXMgZW5hYmxlZCAqLworCXN3aXRjaCAocGRldi0+ZGV2aWNlKSB7CisJY2Fz ZSAweDQzYjk6CisJY2FzZSAweDQzYmE6CisJLyoKKwkgKiBkZXZpY2UgaXMgQU1EX1BST01PTlRP UllBXzQoMHg0M2I5KSBvciBQUk9NT05UT1JZQV8zKDB4NDNiYSkKKwkgKiBQVDRfUDFfUkVHIGJp dHNbNy4uMV0gcmVwcmVzZW50cyBVU0IyLjAgcG9ydHMgNiB0byAwCisJICogUFQ0X1AyX1JFRyBi aXRzWzYuLjBdIHJlcHJlc2VudHMgcG9ydHMgMTMgdG8gNworCSAqLworCQlpZiAocG9ydCA+IDYp IHsKKwkJCXJlZyA9IFBUNF9QMl9SRUc7CisJCQlwb3J0X3NoaWZ0ID0gcG9ydCAtIDc7CisJCX0g ZWxzZSB7CisJCQlyZWcgPSBQVDRfUDFfUkVHOworCQkJcG9ydF9zaGlmdCA9IHBvcnQgKyAxOwor CQl9CisJCWJyZWFrOworCWNhc2UgMHg0M2JiOgorCS8qCisJICogZGV2aWNlIGlzIEFNRF9QUk9N T05UT1JZQV8yKDB4NDNiYikKKwkgKiBQVDJfUDFfUkVHIGJpdHNbNy4uNV0gcmVwcmVzZW50cyBV U0IyLjAgcG9ydHMgMiB0byAwCisJICogUFQyX1AyX1JFRyBiaXRzWzUuLjBdIHJlcHJlc2VudHMg cG9ydHMgOSB0byAzCisJICovCisJCWlmIChwb3J0ID4gMikgeworCQkJcmVnID0gUFQyX1AyX1JF RzsKKwkJCXBvcnRfc2hpZnQgPSBwb3J0IC0gMzsKKwkJfSBlbHNlIHsKKwkJCXJlZyA9IFBUMl9Q MV9SRUc7CisJCQlwb3J0X3NoaWZ0ID0gcG9ydCArIDU7CisJCX0KKwkJYnJlYWs7CisJY2FzZSAw eDQzYmM6CisJLyoKKwkgKiBkZXZpY2UgaXMgQU1EX1BST01PTlRPUllBXzEoMHg0M2JjKQorCSAq IFBUMV9QMV9SRUdbNy4uNF0gcmVwcmVzZW50cyBVU0IyLjAgcG9ydHMgMyB0byAwCisJICogUFQx X1AyX1JFR1s1Li4wXSByZXByZXNlbnRzIHBvcnRzIDkgdG8gNAorCSAqLworCQlpZiAocG9ydCA+ IDMpIHsKKwkJCXJlZyA9IFBUMV9QMl9SRUc7CisJCQlwb3J0X3NoaWZ0ID0gcG9ydCAtIDQ7CisJ CX0gZWxzZSB7CisJCQlyZWcgPSBQVDFfUDFfUkVHOworCQkJcG9ydF9zaGlmdCA9IHBvcnQgKyA0 OworCQl9CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9CisJcGNpX3dy aXRlX2NvbmZpZ193b3JkKHBkZXYsIFBUX0FERFJfSU5EWCwgcmVnKTsKKwlwY2lfcmVhZF9jb25m aWdfYnl0ZShwZGV2LCBQVF9SRUFEX0lORFgsICZ2YWx1ZSk7CisKKwlyZXR1cm4gISh2YWx1ZSAm IEJJVChwb3J0X3NoaWZ0KSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh1c2JfYW1kX3B0X2NoZWNr X3BvcnQpOworCisvKgogICogTWFrZSBzdXJlIHRoZSBjb250cm9sbGVyIGlzIGNvbXBsZXRlbHkg aW5hY3RpdmUsIHVuYWJsZSB0bwogICogZ2VuZXJhdGUgaW50ZXJydXB0cyBvciBkbyBETUEuCiAg Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvcGNpLXF1aXJrcy5oIGIvZHJpdmVycy91 c2IvaG9zdC9wY2ktcXVpcmtzLmgKaW5kZXggYjY4ZGNiNS4uNGNhMGQ5YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvaG9zdC9wY2ktcXVpcmtzLmgKKysrIGIvZHJpdmVycy91c2IvaG9zdC9wY2kt cXVpcmtzLmgKQEAgLTE3LDYgKzE3LDcgQEAgdm9pZCB1c2JfZW5hYmxlX2ludGVsX3hoY2lfcG9y dHMoc3RydWN0IHBjaV9kZXYgKnhoY2lfcGRldik7CiB2b2lkIHVzYl9kaXNhYmxlX3hoY2lfcG9y dHMoc3RydWN0IHBjaV9kZXYgKnhoY2lfcGRldik7CiB2b2lkIHNiODAwX3ByZWZldGNoKHN0cnVj dCBkZXZpY2UgKmRldiwgaW50IG9uKTsKIGJvb2wgdXNiX3hoY2lfbmVlZHNfcGNpX3Jlc2V0KHN0 cnVjdCBwY2lfZGV2ICpwZGV2KTsKK2Jvb2wgdXNiX2FtZF9wdF9jaGVja19wb3J0KHN0cnVjdCBk ZXZpY2UgKmRldmljZSwgaW50IHBvcnQpOwogI2Vsc2UKIHN0cnVjdCBwY2lfZGV2Owogc3RhdGlj IGlubGluZSB2b2lkIHVzYl9hbWRfcXVpcmtfcGxsX2Rpc2FibGUodm9pZCkge30KQEAgLTI1LDYg KzI2LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1c2JfYXNtZWRpYV9tb2RpZnlmbG93Y29udHJv bChzdHJ1Y3QgcGNpX2RldiAqcGRldikge30KIHN0YXRpYyBpbmxpbmUgdm9pZCB1c2JfYW1kX2Rl dl9wdXQodm9pZCkge30KIHN0YXRpYyBpbmxpbmUgdm9pZCB1c2JfZGlzYWJsZV94aGNpX3BvcnRz KHN0cnVjdCBwY2lfZGV2ICp4aGNpX3BkZXYpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQgc2I4MDBf cHJlZmV0Y2goc3RydWN0IGRldmljZSAqZGV2LCBpbnQgb24pIHt9CitzdGF0aWMgaW5saW5lIGJv b2wgdXNiX2FtZF9wdF9jaGVja19wb3J0KHN0cnVjdCBkZXZpY2UgKmRldmljZSwgaW50IHBvcnQp Cit7CisJcmV0dXJuIGZhbHNlOworfQogI2VuZGlmICAvKiBDT05GSUdfVVNCX1BDSSAqLwogCiAj ZW5kaWYgIC8qICBfX0xJTlVYX1VTQl9QQ0lfUVVJUktTX0ggICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMKaW5k ZXggNDZkNWUwOC4uMWRmMGMzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1 Yi5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1odWIuYwpAQCAtMTUyMiw2ICsxNTIyLDEz IEBAIGludCB4aGNpX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpCiAJCQkJdDIgfD0g UE9SVF9XS09DX0UgfCBQT1JUX1dLQ09OTl9FOwogCQkJCXQyICY9IH5QT1JUX1dLRElTQ19FOwog CQkJfQorCisJCQlpZiAoKHhoY2ktPnF1aXJrcyAmIFhIQ0lfVTJfRElTQUJMRV9XQUtFKSAmJgor CQkJICAgIChoY2QtPnNwZWVkIDwgSENEX1VTQjMpKSB7CisJCQkJaWYgKHVzYl9hbWRfcHRfY2hl Y2tfcG9ydChoY2QtPnNlbGYuY29udHJvbGxlciwKKwkJCQkJCQkgIHBvcnRfaW5kZXgpKQorCQkJ CQl0MiAmPSB+UE9SVF9XQUtFX0JJVFM7CisJCQl9CiAJCX0gZWxzZQogCQkJdDIgJj0gflBPUlRf V0FLRV9CSVRTOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMgYi9k cml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMKaW5kZXggNmM3OTAzNy4uNTI2MmZhNSAxMDA2NDQK LS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS1wY2kuYwpAQCAtNDIsNiArNDIsMTAgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRF TF9BUExfWEhDSQkJCTB4NWFhOAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0ROVl9YSENJ CQkJMHgxOWQwCiAKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9BTURfUFJPTU9OVE9SWUFfNAkJCTB4 NDNiOQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FNRF9QUk9NT05UT1JZQV8zCQkJMHg0M2JhCisj ZGVmaW5lIFBDSV9ERVZJQ0VfSURfQU1EX1BST01PTlRPUllBXzIJCQkweDQzYmIKKyNkZWZpbmUg UENJX0RFVklDRV9JRF9BTURfUFJPTU9OVE9SWUFfMQkJCTB4NDNiYwogI2RlZmluZSBQQ0lfREVW SUNFX0lEX0FTTUVESUFfMTA0MkFfWEhDSQkJMHgxMTQyCiAKIHN0YXRpYyBjb25zdCBjaGFyIGhj ZF9uYW1lW10gPSAieGhjaV9oY2QiOwpAQCAtMTI1LDYgKzEyOSwxMyBAQCBzdGF0aWMgdm9pZCB4 aGNpX3BjaV9xdWlya3Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kp CiAJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0FNRCkKIAkJeGhjaS0+cXVpcmtz IHw9IFhIQ0lfVFJVU1RfVFhfTEVOR1RIOwogCisJaWYgKChwZGV2LT52ZW5kb3IgPT0gUENJX1ZF TkRPUl9JRF9BTUQpICYmCisJCSgocGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfQU1EX1BS T01PTlRPUllBXzQpIHx8CisJCShwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9BTURfUFJP TU9OVE9SWUFfMykgfHwKKwkJKHBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0FNRF9QUk9N T05UT1JZQV8yKSB8fAorCQkocGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfQU1EX1BST01P TlRPUllBXzEpKSkKKwkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfVTJfRElTQUJMRV9XQUtFOworCiAJ aWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0lOVEVMKSB7CiAJCXhoY2ktPnF1aXJr cyB8PSBYSENJX0xQTV9TVVBQT1JUOwogCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9JTlRFTF9IT1NU OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmggYi9kcml2ZXJzL3VzYi9ob3N0 L3hoY2kuaAppbmRleCA5NjA5OWEyLi5lNGQ3ZDNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9o b3N0L3hoY2kuaAorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuaApAQCAtMTgyMiw3ICsxODIy LDcgQEAgc3RydWN0IHhoY2lfaGNkIHsKIC8qIEZvciBjb250cm9sbGVyIHdpdGggYSBicm9rZW4g UG9ydCBEaXNhYmxlIGltcGxlbWVudGF0aW9uICovCiAjZGVmaW5lIFhIQ0lfQlJPS0VOX1BPUlRf UEVECSgxIDw8IDI1KQogI2RlZmluZSBYSENJX0xJTUlUX0VORFBPSU5UX0lOVEVSVkFMXzcJKDEg PDwgMjYpCi0vKiBSZXNlcnZlZC4gSXQgd2FzIFhIQ0lfVTJfRElTQUJMRV9XQUtFICovCisjZGVm aW5lIFhIQ0lfVTJfRElTQUJMRV9XQUtFCSgxIDw8IDI3KQogI2RlZmluZSBYSENJX0FTTUVESUFf TU9ESUZZX0ZMT1dDT05UUk9MCSgxIDw8IDI4KQogI2RlZmluZSBYSENJX0hXX0xQTV9ESVNBQkxF CSgxIDw8IDI5KQogCg==