From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: [PATCH 35/43] drm/amd/display: USB-C / thunderbolt dock specific workaround Date: Thu, 23 Nov 2017 14:53:08 -0500 Message-ID: <20171123195316.8366-36-harry.wentland@amd.com> References: <20171123195316.8366-1-harry.wentland@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171123195316.8366-1-harry.wentland-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Hersen Wu RnJvbTogSGVyc2VuIFd1IDxoZXJzZW54cy53dUBhbWQuY29tPgoKcmVhZGluZyBkcGNkIDB4NjAw IGNhdXNlIGxpbmsgbG9zcyBmb3IgYSBwYXJ0aWN1bGFyIFVTQi1DIGRvY2sgd2l0aAp0aHVyZGVy Ym9sdC4gIHdvcmthcm91bmQgYnkgYXZvaWRpbmcgZGNwZCAweDYwMCByZWFkIHVubGVzcyBpdCdz Cm5lY2Vzc2FyeS4KClNpZ25lZC1vZmYtYnk6IEhlcnNlbiBXdSA8aGVyc2VueHMud3VAYW1kLmNv bT4KUmV2aWV3ZWQtYnk6IFRvbnkgQ2hlbmcgPFRvbnkuQ2hlbmdAYW1kLmNvbT4KQWNrZWQtYnk6 IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZHAuYyB8IDg1ICsrKysrKysrKysrLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2Rj X2xpbmtfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtf ZHAuYwppbmRleCA3OTYyMDg2NGZlYjIuLjAwNTI4YjIxNGE5ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZHAuYwpAQCAtMTUwOSw3ICsxNTA5 LDcgQEAgc3RhdGljIGJvb2wgaHBkX3J4X2lycV9jaGVja19saW5rX2xvc3Nfc3RhdHVzKAogCXN0 cnVjdCBkY19saW5rICpsaW5rLAogCXVuaW9uIGhwZF9pcnFfZGF0YSAqaHBkX2lycV9kcGNkX2Rh dGEpCiB7Ci0JdWludDhfdCBpcnFfcmVnX3J4X3Bvd2VyX3N0YXRlOworCXVpbnQ4X3QgaXJxX3Jl Z19yeF9wb3dlcl9zdGF0ZSA9IDA7CiAJZW51bSBkY19zdGF0dXMgZHBjZF9yZXN1bHQgPSBEQ19F UlJPUl9VTkVYUEVDVEVEOwogCXVuaW9uIGxhbmVfc3RhdHVzIGxhbmVfc3RhdHVzOwogCXVpbnQz Ml90IGxhbmU7CkBAIC0xNTIxLDYwICsxNTIxLDU1IEBAIHN0YXRpYyBib29sIGhwZF9yeF9pcnFf Y2hlY2tfbGlua19sb3NzX3N0YXR1cygKIAogCWlmIChsaW5rLT5jdXJfbGlua19zZXR0aW5ncy5s YW5lX2NvdW50ID09IDApCiAJCXJldHVybiByZXR1cm5fY29kZTsKLQkvKjEuIENoZWNrIHRoYXQg d2UgY2FuIGhhbmRsZSBpbnRlcnJ1cHQ6IE5vdCBpbiBGUyBET1MsCi0JICogIE5vdCBpbiAiRGlz cGxheSBUaW1lb3V0IiBzdGF0ZSwgTGluayBpcyB0cmFpbmVkLgotCSAqLwogCi0JZHBjZF9yZXN1 bHQgPSBjb3JlX2xpbmtfcmVhZF9kcGNkKGxpbmssCi0JCURQX1NFVF9QT1dFUiwKLQkJJmlycV9y ZWdfcnhfcG93ZXJfc3RhdGUsCi0JCXNpemVvZihpcnFfcmVnX3J4X3Bvd2VyX3N0YXRlKSk7CisJ LyoxLiBDaGVjayB0aGF0IExpbmsgU3RhdHVzIGNoYW5nZWQsIGJlZm9yZSByZS10cmFpbmluZy4q LwogCi0JaWYgKGRwY2RfcmVzdWx0ICE9IERDX09LKSB7Ci0JCWlycV9yZWdfcnhfcG93ZXJfc3Rh dGUgPSBEUF9TRVRfUE9XRVJfRDA7Ci0JCWRtX2xvZ2dlcl93cml0ZShsaW5rLT5jdHgtPmxvZ2dl ciwgTE9HX0hXX0hQRF9JUlEsCi0JCQkiJXM6IERQQ0QgcmVhZCBmYWlsZWQgdG8gb2J0YWluIHBv d2VyIHN0YXRlLlxuIiwKLQkJCV9fZnVuY19fKTsKKwkvKnBhcnNlIGxhbmUgc3RhdHVzKi8KKwlm b3IgKGxhbmUgPSAwOyBsYW5lIDwgbGluay0+Y3VyX2xpbmtfc2V0dGluZ3MubGFuZV9jb3VudDsg bGFuZSsrKSB7CisJCS8qIGNoZWNrIHN0YXR1cyBvZiBsYW5lcyAwLDEKKwkJICogY2hhbmdlZCBE cGNkQWRkcmVzc19MYW5lMDFTdGF0dXMgKDB4MjAyKQorCQkgKi8KKwkJbGFuZV9zdGF0dXMucmF3 ID0gZ2V0X25pYmJsZV9hdF9pbmRleCgKKwkJCSZocGRfaXJxX2RwY2RfZGF0YS0+Ynl0ZXMubGFu ZTAxX3N0YXR1cy5yYXcsCisJCQlsYW5lKTsKKworCQlpZiAoIWxhbmVfc3RhdHVzLmJpdHMuQ0hB Tk5FTF9FUV9ET05FXzAgfHwKKwkJCSFsYW5lX3N0YXR1cy5iaXRzLkNSX0RPTkVfMCB8fAorCQkJ IWxhbmVfc3RhdHVzLmJpdHMuU1lNQk9MX0xPQ0tFRF8wKSB7CisJCQkvKiBpZiBvbmUgb2YgdGhl IGNoYW5uZWwgZXF1YWxpemF0aW9uLCBjbG9jaworCQkJICogcmVjb3Zlcnkgb3Igc3ltYm9sIGxv Y2sgaXMgZHJvcHBlZAorCQkJICogY29uc2lkZXIgaXQgYXMgKGxpbmsgaGFzIGJlZW4KKwkJCSAq IGRyb3BwZWQpIGRwIHNpbmsgc3RhdHVzIGhhcyBjaGFuZ2VkCisJCQkgKi8KKwkJCXNpbmtfc3Rh dHVzX2NoYW5nZWQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KIAl9CiAKLQlpZiAoaXJxX3JlZ19y eF9wb3dlcl9zdGF0ZSA9PSBEUF9TRVRfUE9XRVJfRDApIHsKKwkvKiBDaGVjayBpbnRlcmxhbmUg YWxpZ24uKi8KKwlpZiAoc2lua19zdGF0dXNfY2hhbmdlZCB8fAorCQkhaHBkX2lycV9kcGNkX2Rh dGEtPmJ5dGVzLmxhbmVfc3RhdHVzX3VwZGF0ZWQuYml0cy5JTlRFUkxBTkVfQUxJR05fRE9ORSkg ewogCi0JCS8qMi4gQ2hlY2sgdGhhdCBMaW5rIFN0YXR1cyBjaGFuZ2VkLCBiZWZvcmUgcmUtdHJh aW5pbmcuKi8KLQotCQkvKnBhcnNlIGxhbmUgc3RhdHVzKi8KLQkJZm9yIChsYW5lID0gMDsKLQkJ CWxhbmUgPCBsaW5rLT5jdXJfbGlua19zZXR0aW5ncy5sYW5lX2NvdW50OwotCQkJbGFuZSsrKSB7 Ci0KLQkJCS8qIGNoZWNrIHN0YXR1cyBvZiBsYW5lcyAwLDEKLQkJCSAqIGNoYW5nZWQgRHBjZEFk ZHJlc3NfTGFuZTAxU3RhdHVzICgweDIwMikqLwotCQkJbGFuZV9zdGF0dXMucmF3ID0gZ2V0X25p YmJsZV9hdF9pbmRleCgKLQkJCQkmaHBkX2lycV9kcGNkX2RhdGEtPmJ5dGVzLmxhbmUwMV9zdGF0 dXMucmF3LAotCQkJCWxhbmUpOwotCi0JCQlpZiAoIWxhbmVfc3RhdHVzLmJpdHMuQ0hBTk5FTF9F UV9ET05FXzAgfHwKLQkJCQkhbGFuZV9zdGF0dXMuYml0cy5DUl9ET05FXzAgfHwKLQkJCQkhbGFu ZV9zdGF0dXMuYml0cy5TWU1CT0xfTE9DS0VEXzApIHsKLQkJCQkvKiBpZiBvbmUgb2YgdGhlIGNo YW5uZWwgZXF1YWxpemF0aW9uLCBjbG9jawotCQkJCSAqIHJlY292ZXJ5IG9yIHN5bWJvbCBsb2Nr IGlzIGRyb3BwZWQKLQkJCQkgKiBjb25zaWRlciBpdCBhcyAobGluayBoYXMgYmVlbgotCQkJCSAq IGRyb3BwZWQpIGRwIHNpbmsgc3RhdHVzIGhhcyBjaGFuZ2VkKi8KLQkJCQlzaW5rX3N0YXR1c19j aGFuZ2VkID0gdHJ1ZTsKLQkJCQlicmVhazsKLQkJCX0KKwkJZG1fbG9nZ2VyX3dyaXRlKGxpbmst PmN0eC0+bG9nZ2VyLCBMT0dfSFdfSFBEX0lSUSwKKwkJCSIlczogTGluayBTdGF0dXMgY2hhbmdl ZC5cbiIsIF9fZnVuY19fKTsKIAotCQl9CisJCXJldHVybl9jb2RlID0gdHJ1ZTsKIAotCQkvKiBD aGVjayBpbnRlcmxhbmUgYWxpZ24uKi8KLQkJaWYgKHNpbmtfc3RhdHVzX2NoYW5nZWQgfHwKLQkJ CSFocGRfaXJxX2RwY2RfZGF0YS0+Ynl0ZXMubGFuZV9zdGF0dXNfdXBkYXRlZC5iaXRzLgotCQkJ SU5URVJMQU5FX0FMSUdOX0RPTkUpIHsKKwkJLyoyLiBDaGVjayB0aGF0IHdlIGNhbiBoYW5kbGUg aW50ZXJydXB0OiBOb3QgaW4gRlMgRE9TLAorCQkgKiAgTm90IGluICJEaXNwbGF5IFRpbWVvdXQi IHN0YXRlLCBMaW5rIGlzIHRyYWluZWQuCisJCSAqLworCQlkcGNkX3Jlc3VsdCA9IGNvcmVfbGlu a19yZWFkX2RwY2QobGluaywKKwkJCURQX1NFVF9QT1dFUiwKKwkJCSZpcnFfcmVnX3J4X3Bvd2Vy X3N0YXRlLAorCQkJc2l6ZW9mKGlycV9yZWdfcnhfcG93ZXJfc3RhdGUpKTsKIAorCQlpZiAoZHBj ZF9yZXN1bHQgIT0gRENfT0spIHsKIAkJCWRtX2xvZ2dlcl93cml0ZShsaW5rLT5jdHgtPmxvZ2dl ciwgTE9HX0hXX0hQRF9JUlEsCi0JCQkJIiVzOiBMaW5rIFN0YXR1cyBjaGFuZ2VkLlxuIiwKKwkJ CQkiJXM6IERQQ0QgcmVhZCBmYWlsZWQgdG8gb2J0YWluIHBvd2VyIHN0YXRlLlxuIiwKIAkJCQlf X2Z1bmNfXyk7Ci0KLQkJCXJldHVybl9jb2RlID0gdHJ1ZTsKKwkJfSBlbHNlIHsKKwkJCWlmIChp cnFfcmVnX3J4X3Bvd2VyX3N0YXRlICE9IERQX1NFVF9QT1dFUl9EMCkKKwkJCQlyZXR1cm5fY29k ZSA9IGZhbHNlOwogCQl9CiAJfQogCi0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeAo=