From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v3 1/2 RESEND] drm/dp_helper: add workarounds from intel_dp_dpcd_read_wake() Date: Wed, 23 Mar 2016 15:33:13 -0400 Message-ID: <1458761593-13561-1-git-send-email-cpaul@redhat.com> References: <1458761417-12165-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458761417-12165-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: David Airlie , arthur.j.runyan@intel.com, open list List-Id: intel-gfx@lists.freedesktop.org U29tZSBzaW5rcyBuZWVkIHNvbWUgdGltZSBkdXJpbmcgdGhlIHByb2Nlc3Mgb2YgcmVzdW1pbmcg dGhlIHN5c3RlbSBmcm9tCnNsZWVwIGJlZm9yZSB0aGV5J3JlIHJlYWR5IHRvIGhhbmRsZSB0cmFu c2FjdGlvbnMuIFdoaWxlIGl0IHdvdWxkIGJlCm5pY2UgaWYgdGhleSByZXNwb25kZWQgd2l0aCBO QUNLcyBpbiB0aGVzZSBzY2VuYXJpb3MsIHRoaXMgaXNuJ3QgYWx3YXlzCnRoZSBjYXNlIGFzIGEg ZmV3IHNpbmtzIHdpbGwganVzdCB0aW1lb3V0IG9uIGFsbCBvZiB0aGUgdHJhbnNhY3Rpb25zCnRo ZXkgcmVjZWl2ZS4KClRoaXMgcGF0Y2ggd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgdG8gYmUgYSB3 b3JrYXJvdW5kIGZvciBhIHZlcnkKbXlzdGVyaW91cyBidWcgb24gdGhlIFQ1NjAsIHdoZXJlIGFu eSBtb25pdG9ycyBjb25uZWN0ZWQgdG8gdGhlIGRvY2sKd291bGQgZmFpbCB0byB0dXJuIGJhY2sg b24gYWZ0ZXIgcmVzdW1lLiBXaGVuIHJlc3VtaW5nIHRoZSBsYXB0b3AsIGl0CmFwcGVhcnMgdGhh dCB0aGVyZSdzIGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUgd2hlcmUgd2UncmUgdW5hYmxlIHRvCmNv bXBsZXRlIGFueSBhdXggdHJhbnNhY3Rpb25zLCBhcyB0aGV5IGFsbCBpbW1lZGlhdGVseSB0aW1l b3V0LiBUaGUgb25seQptYWNoaW5lIEknbSBhYmxlIHRvIHJlcHJvZHVjZSB0aGlzIG9uIGlzIHRo ZSBUNTYwIGFzIG90aGVyIHByb2R1Y3Rpb24KU2t5bGFrZSBtb2RlbHMgc2VlbSB0byBiZSBmaW5l LiBUaGUgcGVyaW9kIGR1cmluZyB3aGljaCBBVVggdHJhbnNhY3Rpb25zCmZhaWwgYXBwZWFycyB0 byBiZSBhcm91bmQgMjJtcyBsb25nLiBBRkFJSywgdGhlIGRvY2sgZm9yIHRoZSBUNTYwIG5ldmVy CmFjdHVhbGx5IHR1cm5zIG9mZiwgdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IGl0J3MgaW4g U1NUIG1vZGUgYXQgdGhlCnN0YXJ0IG9mIHRoZSByZXN1bWUgcHJvY2Vzcywgc28gaXQncyB1bmNs ZWFyIGFzIHRvIHdoeSBpdCB3b3VsZCBuZWVkIHNvCm11Y2ggdGltZSB0byBjb21lIGJhY2sgdXAu CgpUaGVyZSdzIGJlZW4gYSBkaXNjdXNzaW9uIG9uIHRoaXMgaXNzdWUgZ29pbmcgb24gZm9yIGEg d2hpbGUgb24gdGhlCmludGVsLWdmeCBtYWlsaW5nIGxpc3QgYWJvdXQgdGhpcyB0aGF0IGhhcywg aW4gYWRkaXRpb24gdG8gaW5jbHVkaW5nCmRldmVsb3BlcnMgZnJvbSBJbnRlbCwgYWxzbyBoYWQg dGhlIGNvcnJlc3BvbmRlbmNlIG9mIG9uZSBvZiB0aGUKaGFyZHdhcmUgZW5naW5lZXJzIGZvciBJ bnRlbDoKCmh0dHA6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvaW50ZWwtZ2Z4L21zZzg4ODMxLmh0 bWwKaHR0cDovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9pbnRlbC1nZngvbXNnODg0MTAuaHRtbAoK V2UndmUgYWxyZWFkeSBsb29rZWQgaW50byBhIGNvdXBsZSBvZiBwb3NzaWJsZSBleHBsYW5hdGlv bnMgZm9yIHRoZQpwcm9ibGVtOgoKLSBDYWxsaW5nIGludGVsX2RwX21zdF9yZXN1bWUoKSBiZWZv cmUgcmlnaHQgZml4LgogIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlX2ludGVycnVwdHMoKS4gVGhp cyB3YXMgdGhlIGZpcnN0IGZpeCBJIHRyaWVkLAogIGFuZCB3aGlsZSBpdCB3b3JrZWQgaXQgZGVm aW5pdGVseSB3YXNuJ3QgdGhlIHJpZ2h0IGZpeC4gVGhpcyB3b3JrZWQKICBiZWNhdXNlIERQIGF1 eCB0cmFuc2FjdGlvbnMgZG9uJ3QgYWN0dWFsbHkgcmVxdWlyZSBpbnRlcnJ1cHRzIHRvIHdvcms6 CgoJc3RhdGljIHVpbnQzMl90CglpbnRlbF9kcF9hdXhfd2FpdF9kb25lKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGJvb2wgaGFzX2F1eF9pcnEpCgl7CgkJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CgkJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2OwoJCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CgkJaTkxNV9y ZWdfdCBjaF9jdGwgPSBpbnRlbF9kcC0+YXV4X2NoX2N0bF9yZWc7CgkJdWludDMyX3Qgc3RhdHVz OwoJCWJvb2wgZG9uZTsKCgkjZGVmaW5lIEMgKCgoc3RhdHVzID0gSTkxNV9SRUFEX05PVFJBQ0Uo Y2hfY3RsKSkgJiBEUF9BVVhfQ0hfQ1RMX1NFTkRfQlVTWSkgPT0gMCkKCQlpZiAoaGFzX2F1eF9p cnEpCgkJCWRvbmUgPSB3YWl0X2V2ZW50X3RpbWVvdXQoZGV2X3ByaXYtPmdtYnVzX3dhaXRfcXVl dWUsIEMsCgkJCQkJCSAgbXNlY3NfdG9famlmZmllc190aW1lb3V0KDEwKSk7CgkJZWxzZQoJCQlk b25lID0gd2FpdF9mb3JfYXRvbWljKEMsIDEwKSA9PSAwOwoJCWlmICghZG9uZSkKCQkJRFJNX0VS Uk9SKCJkcCBhdXggaHcgZGlkIG5vdCBzaWduYWwgdGltZW91dCAoaGFzIGlycTogJWkpIVxuIiwK CQkJCSAgaGFzX2F1eF9pcnEpOwoJI3VuZGVmIEMKCgkJcmV0dXJuIHN0YXR1czsKCX0KCiAgV2hl biB0aGVyZSdzIG5vIGludGVycnVwdHMgZW5hYmxlZCwgd2UgZW5kIHVwIHRpbWluZyBvdXQgb24g dGhlCiAgd2FpdF9ldmVudF90aW1lb3V0KCkgY2FsbCwgd2hpY2ggY2F1c2VzIHVzIHRvIGNoZWNr IHRoZSBEUCBzdGF0dXMKICByZWdpc3RlciBvbmNlIHRvIHNlZSBpZiB0aGUgdHJhbnNhY3Rpb24g d2FzIHN1Y2Nlc3NmdWwgb3Igbm90LiBTaW5jZQogIHRoaXMgYWRkcyBhIDEwbXMgZGVsYXkgdG8g ZWFjaCBhdXggdHJhbnNhY3Rpb24sIGl0IGVuZHMgdXAgYWRkaW5nIGEKICBsb25nIGVub3VnaCBk ZWxheSB0byB0aGUgcmVzdW1lIHByb2Nlc3MgZm9yIGF1eCB0cmFuc2FjdGlvbnMgdG8gYmVjb21l CiAgZnVuY3Rpb25hbCBhZ2Fpbi4gVGhpcyBnYXZlIHVzIHRoZSBpbGx1c2lvbiB0aGF0IGVuYWJs aW5nIGludGVycnVwdHMKICBoYWQgc29tZXRoaW5nIHRvIGRvIHdpdGggbWFraW5nIHRoaW5ncyB3 b3JrIGFnYWluLCBhbmQgcHV0IG1lIG9uIHRoZQogIHdyb25nIHRyYWNrIGZvciBhIHdoaWxlLgoK LSBJbnRlcnJ1cHRzIG9jY3VycmluZyB3aGVuIHdlIHRyeSB0byBwZXJmb3JtIHRoZSBhdXggdHJh bnNhY3Rpb25zCiAgcmVxdWlyZWQgdG8gcHV0IHRoZSBkb2NrIGJhY2sgaW50byBNU1QgbW9kZS4g VGhpcyBpc24ndCB0aGUgcHJvYmxlbSwKICBhcyB0aGUgb25seSBpbnRlcnJ1cHRzIEkndmUgb2Jz ZXJ2ZWQgdGhhdCBjb21lIGR1cmluZyB0aGlzIHRpbWVvdXQKICBwZXJpb2QgYXJlIGZyb20gdGhl IHNuZF9oZGFfaW50ZWwgZHJpdmVyLCBhbmQgZGlzYWJsaW5nIHRoYXQgZHJpdmVyCiAgZG9lc24n dCBhcHBlYXIgdG8gY2hhbmdlIHRoZSBiZWhhdmlvciBhdCBhbGwuCgotIFNreWxha2UncyBQU1Ig YmxvY2sgY2F1c2luZyBpc3N1ZXMgYnkgcGVyZm9ybWluZyBhdXggdHJhbnNhY3Rpb25zCiAgd2hp bGUgd2UgdHJ5IHRvIGJyaW5nIHRoZSBkb2NrIG91dCBvZiBNU1QgbW9kZS4gRGlzYWJsaW5nIFBT UiB0aHJvdWdoCiAgaTkxNSdzIGNvbW1hbmQgbGluZSBvcHRpb25zIGRvZXNuJ3Qgc2VlbSB0byBj aGFuZ2UgdGhlIGJlaGF2aW9yCiAgZWl0aGVyLCBub3IgZG9lcyBwcmV2ZW50aW5nIHRoZSBETUMg ZmlybXdhcmUgZnJvbSBiZWluZyBsb2FkZWQuCgpTaW5jZSB0aGlzIGludmVzdGlnYXRpb24gd2Vu dCBvbiBmb3IgYWJvdXQgMiB3ZWVrcywgd2UgZGVjaWRlZCBpdCB3b3VsZApiZSBiZXR0ZXIgZm9y IHRoZSB0aW1lIGJlaW5nIHRvIGp1c3Qgd29ya2Fyb3VuZCB0aGlzIGlzc3VlIHVudGlsIHdlIGZp bmQKYSBiZXR0ZXIgZml4LiBUaGlzIHBhdGNoIGFkZHMgc29tZSBiZWhhdmlvciB3ZSB3YW50IGlu CmRybV9kcF9kcGNkX2FjY2VzcygpIGFueXdheSwgc2luY2UgRFAgYXV4IHRyYW5zYWN0aW9ucyBh cmVuJ3QgZXhhY3RseQpyb2J1c3QgYW5kIHRoaXMgd2lsbCBwcm9iYWJseSBmaXggcXVpdGUgYSBm ZXcgb3RoZXIgaXNzdWVzIHdpdGggRFAgTVNUCmhhcmR3YXJlIG5vdCByZXNwb25kaW5nIGluIHRp bWUuIFBsdXMsIHRoaXMgaXMgc29tZXRoaW5nIHdlIGFscmVhZHkgZG8KaW4gdGhlIGk5MTUgZHJp dmVyIHdpdGggaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoKSwgZXhjZXB0IHRoYXQgdGhhdApmdW5j dGlvbiBpcyBzb21ld2hhdCBvZiBhIGhhY2sgYW5kIERSTSBoZWxwZXJzIGNhbid0IG1ha2UgdXNl IG9mIGl0LgoKCQkJICAgIENoYW5nZXMgc2luY2UgdjIKLSBSZXdvcmtlZCB0aGUgcGF0Y2ggYWdh aW4gdG8gaW5jb3Jwb3JhdGUgYWxsIG9mIHRoZSBiZWhhdmlvciBvZgogIGludGVsX2RwX2RwY2Rf cmVhZF93YWtlKCkgaW50byBkcm1fZHBfZHBjZF9yZWFkKCkgYW5kCiAgZHJtX2RwX2RwY2RfYWNj ZXNzKCkKCgkJCSAgICBDaGFuZ2VzIHNpbmNlIHYxCgotIFBhdGNoIGhhcyBiZWVuIHJld29ya2Vk IHRvIHRha2UgdGhlIHJldHJ5IGxvZ2ljIG91dCBvZgogIGludGVsX2RwX21zdF9yZXN1bWUoKSBh bmQgaW50byBkcm1fZHBfZHBjZF9hY2Nlc3MoKSwgYmFzZWQgb2ZmIGEKICBzdWdnZXN0aW9uIGZy b20gRGFuaWVsIFZldHRlcgoKLSBDb21taXQgbWVzc2FnZSBpcyBtdWNoIGxvbmdlciBhbmQgZ2l2 ZXMgYSBiZXR0ZXIgZGVzY3JpcHRpb24gb2YgdGhlCiAgaXNzdWUgdGhpcyB3YXMgb3JpZ2luYWxs eSBpbnRlbmRlZCB0byB3b3JrYXJvdW5kLgoKU2lnbmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJl ZGhhdC5jb20+Ci0tLQpMZWZ0IHNvbWUgcmViYXNlIGRpdHJpdHVzIGluIHRoZSBwYXRjaCBhZnRl ciBzZW5kaW5nIGl0IGJ5IGFjY2lkZW50LCB3aG9vcHMKCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Rw X2hlbHBlci5jIHwgNDcgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9kcF9oZWxwZXIuYwppbmRleCA5NTM1YzViLi45YjM0MjZjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf aGVscGVyLmMKQEAgLTE1OSw3ICsxNTksNyBAQCBpbnQgZHJtX2RwX2J3X2NvZGVfdG9fbGlua19y YXRlKHU4IGxpbmtfYncpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9id19jb2RlX3RvX2xpbmtf cmF0ZSk7CiAKLSNkZWZpbmUgQVVYX1JFVFJZX0lOVEVSVkFMIDUwMCAvKiB1cyAqLworI2RlZmlu ZSBBVVhfUkVUUllfSU5URVJWQUwgMTAwMCAvKiB1cyAqLwogCiAvKioKICAqIERPQzogZHAgaGVs cGVycwpAQCAtMTc3LDggKzE3Nyw4IEBAIHN0YXRpYyBpbnQgZHJtX2RwX2RwY2RfYWNjZXNzKHN0 cnVjdCBkcm1fZHBfYXV4ICphdXgsIHU4IHJlcXVlc3QsCiAJCQkgICAgICB1bnNpZ25lZCBpbnQg b2Zmc2V0LCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKQogewogCXN0cnVjdCBkcm1fZHBfYXV4 X21zZyBtc2c7Ci0JdW5zaWduZWQgaW50IHJldHJ5OwotCWludCBlcnI7CisJdW5zaWduZWQgaW50 IHJldHJ5LCBuYXRpdmVfcmVwbHk7CisJaW50IHJldCA9IDA7CiAKIAltZW1zZXQoJm1zZywgMCwg c2l6ZW9mKG1zZykpOwogCW1zZy5hZGRyZXNzID0gb2Zmc2V0OwpAQCAtMTkzLDM1ICsxOTMsMjkg QEAgc3RhdGljIGludCBkcm1fZHBfZHBjZF9hY2Nlc3Moc3RydWN0IGRybV9kcF9hdXggKmF1eCwg dTggcmVxdWVzdCwKIAkgKiBzdWZmaWNpZW50LCBidW1wIHRvIDMyIHdoaWNoIG1ha2VzIERlbGwg NGsgbW9uaXRvcnMgaGFwcGllci4KIAkgKi8KIAlmb3IgKHJldHJ5ID0gMDsgcmV0cnkgPCAzMjsg cmV0cnkrKykgeworCQlpZiAocmV0ICE9IDAgJiYgcmV0ICE9IC1FVElNRURPVVQpIHsKKwkJCXVz bGVlcF9yYW5nZShBVVhfUkVUUllfSU5URVJWQUwsCisJCQkJICAgICBBVVhfUkVUUllfSU5URVJW QUwgKyAxMDApOworCQl9CiAKIAkJbXV0ZXhfbG9jaygmYXV4LT5od19tdXRleCk7Ci0JCWVyciA9 IGF1eC0+dHJhbnNmZXIoYXV4LCAmbXNnKTsKKwkJcmV0ID0gYXV4LT50cmFuc2ZlcihhdXgsICZt c2cpOwogCQltdXRleF91bmxvY2soJmF1eC0+aHdfbXV0ZXgpOwotCQlpZiAoZXJyIDwgMCkgewot CQkJaWYgKGVyciA9PSAtRUJVU1kpCi0JCQkJY29udGludWU7Ci0KLQkJCXJldHVybiBlcnI7Ci0J CX0KLQotCi0JCXN3aXRjaCAobXNnLnJlcGx5ICYgRFBfQVVYX05BVElWRV9SRVBMWV9NQVNLKSB7 Ci0JCWNhc2UgRFBfQVVYX05BVElWRV9SRVBMWV9BQ0s6Ci0JCQlpZiAoZXJyIDwgc2l6ZSkKLQkJ CQlyZXR1cm4gLUVQUk9UTzsKLQkJCXJldHVybiBlcnI7CiAKLQkJY2FzZSBEUF9BVVhfTkFUSVZF X1JFUExZX05BQ0s6Ci0JCQlyZXR1cm4gLUVJTzsKKwkJaWYgKHJldCA+IDApIHsKKwkJCW5hdGl2 ZV9yZXBseSA9IG1zZy5yZXBseSAmIERQX0FVWF9OQVRJVkVfUkVQTFlfTUFTSzsKKwkJCWlmIChu YXRpdmVfcmVwbHkgPT0gRFBfQVVYX05BVElWRV9SRVBMWV9BQ0spIHsKKwkJCQlpZiAocmV0ID09 IHNpemUpCisJCQkJCXJldHVybiByZXQ7CiAKLQkJY2FzZSBEUF9BVVhfTkFUSVZFX1JFUExZX0RF RkVSOgotCQkJdXNsZWVwX3JhbmdlKEFVWF9SRVRSWV9JTlRFUlZBTCwgQVVYX1JFVFJZX0lOVEVS VkFMICsgMTAwKTsKLQkJCWJyZWFrOworCQkJCXJldCA9IC1FUFJPVE87CisJCQl9IGVsc2UKKwkJ CQlyZXQgPSAtRUlPOwogCQl9CiAJfQogCiAJRFJNX0RFQlVHX0tNUygidG9vIG1hbnkgcmV0cmll cywgZ2l2aW5nIHVwXG4iKTsKLQlyZXR1cm4gLUVJTzsKKwlyZXR1cm4gcmV0OwogfQogCiAvKioK QEAgLTI0MSw2ICsyMzUsMTMgQEAgc3RhdGljIGludCBkcm1fZHBfZHBjZF9hY2Nlc3Moc3RydWN0 IGRybV9kcF9hdXggKmF1eCwgdTggcmVxdWVzdCwKIHNzaXplX3QgZHJtX2RwX2RwY2RfcmVhZChz dHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogCQkJIHZvaWQgKmJ1 ZmZlciwgc2l6ZV90IHNpemUpCiB7CisJLyoKKwkgKiBTb21ldGltZXMgd2UganVzdCBnZXQgdGhl IHNhbWUgaW5jb3JyZWN0IGJ5dGUgcmVwZWF0ZWQgb3ZlciB0aGUKKwkgKiBlbnRpcmUgYnVmZmVy LiBEb2luZyBvbmUgdGhyb3cgYXdheSByZWFkIGluaXRpYWxseSBzZWVtcyB0byAic29sdmUiCisJ ICogaXQuCisJICovCisJZHJtX2RwX2RwY2RfYWNjZXNzKGF1eCwgRFBfQVVYX05BVElWRV9SRUFE LCBEUF9EUENEX1JFViwgYnVmZmVyLCAxKTsKKwogCXJldHVybiBkcm1fZHBfZHBjZF9hY2Nlc3Mo YXV4LCBEUF9BVVhfTkFUSVZFX1JFQUQsIG9mZnNldCwgYnVmZmVyLAogCQkJCSAgc2l6ZSk7CiB9 Ci0tIAoyLjUuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==