From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v3 1/2] drm/dp_helper: add workarounds from intel_dp_dpcd_read_wake() Date: Wed, 23 Mar 2016 15:30:17 -0400 Message-ID: <1458761417-12165-1-git-send-email-cpaul@redhat.com> References: <1458229245-8634-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: <1458229245-8634-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: arthur.j.runyan@intel.com, open list , Lyude List-Id: dri-devel@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+CgpzcXVhc2ghIGRybS9kcF9oZWxwZXI6IHJldHJ5IG9uIC1FVElNRURPVVQgaW4g ZHJtX2RwX2RwY2RfYWNjZXNzKCkKCnNxdWFzaCEgZHJtL2RwX2hlbHBlcjogcmV0cnkgb24gLUVU SU1FRE9VVCBpbiBkcm1fZHBfZHBjZF9hY2Nlc3MoKQotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZHBfaGVscGVyLmMgfCA0NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2RwX2hlbHBlci5jCmluZGV4IDk1MzVjNWIuLjliMzQyNmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9k cF9oZWxwZXIuYwpAQCAtMTU5LDcgKzE1OSw3IEBAIGludCBkcm1fZHBfYndfY29kZV90b19saW5r X3JhdGUodTggbGlua19idykKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX2J3X2NvZGVfdG9fbGlu a19yYXRlKTsKIAotI2RlZmluZSBBVVhfUkVUUllfSU5URVJWQUwgNTAwIC8qIHVzICovCisjZGVm aW5lIEFVWF9SRVRSWV9JTlRFUlZBTCAxMDAwIC8qIHVzICovCiAKIC8qKgogICogRE9DOiBkcCBo ZWxwZXJzCkBAIC0xNzcsOCArMTc3LDggQEAgc3RhdGljIGludCBkcm1fZHBfZHBjZF9hY2Nlc3Mo c3RydWN0IGRybV9kcF9hdXggKmF1eCwgdTggcmVxdWVzdCwKIAkJCSAgICAgIHVuc2lnbmVkIGlu dCBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGRybV9kcF9h dXhfbXNnIG1zZzsKLQl1bnNpZ25lZCBpbnQgcmV0cnk7Ci0JaW50IGVycjsKKwl1bnNpZ25lZCBp bnQgcmV0cnksIG5hdGl2ZV9yZXBseTsKKwlpbnQgcmV0ID0gMDsKIAogCW1lbXNldCgmbXNnLCAw LCBzaXplb2YobXNnKSk7CiAJbXNnLmFkZHJlc3MgPSBvZmZzZXQ7CkBAIC0xOTMsMzUgKzE5Mywy OSBAQCBzdGF0aWMgaW50IGRybV9kcF9kcGNkX2FjY2VzcyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4 LCB1OCByZXF1ZXN0LAogCSAqIHN1ZmZpY2llbnQsIGJ1bXAgdG8gMzIgd2hpY2ggbWFrZXMgRGVs bCA0ayBtb25pdG9ycyBoYXBwaWVyLgogCSAqLwogCWZvciAocmV0cnkgPSAwOyByZXRyeSA8IDMy OyByZXRyeSsrKSB7CisJCWlmIChyZXQgIT0gMCAmJiByZXQgIT0gLUVUSU1FRE9VVCkgeworCQkJ dXNsZWVwX3JhbmdlKEFVWF9SRVRSWV9JTlRFUlZBTCwKKwkJCQkgICAgIEFVWF9SRVRSWV9JTlRF UlZBTCArIDEwMCk7CisJCX0KIAogCQltdXRleF9sb2NrKCZhdXgtPmh3X211dGV4KTsKLQkJZXJy ID0gYXV4LT50cmFuc2ZlcihhdXgsICZtc2cpOworCQlyZXQgPSBhdXgtPnRyYW5zZmVyKGF1eCwg Jm1zZyk7CiAJCW11dGV4X3VubG9jaygmYXV4LT5od19tdXRleCk7Ci0JCWlmIChlcnIgPCAwKSB7 Ci0JCQlpZiAoZXJyID09IC1FQlVTWSkKLQkJCQljb250aW51ZTsKLQotCQkJcmV0dXJuIGVycjsK LQkJfQotCi0KLQkJc3dpdGNoIChtc2cucmVwbHkgJiBEUF9BVVhfTkFUSVZFX1JFUExZX01BU0sp IHsKLQkJY2FzZSBEUF9BVVhfTkFUSVZFX1JFUExZX0FDSzoKLQkJCWlmIChlcnIgPCBzaXplKQot CQkJCXJldHVybiAtRVBST1RPOwotCQkJcmV0dXJuIGVycjsKIAotCQljYXNlIERQX0FVWF9OQVRJ VkVfUkVQTFlfTkFDSzoKLQkJCXJldHVybiAtRUlPOworCQlpZiAocmV0ID4gMCkgeworCQkJbmF0 aXZlX3JlcGx5ID0gbXNnLnJlcGx5ICYgRFBfQVVYX05BVElWRV9SRVBMWV9NQVNLOworCQkJaWYg KG5hdGl2ZV9yZXBseSA9PSBEUF9BVVhfTkFUSVZFX1JFUExZX0FDSykgeworCQkJCWlmIChyZXQg PT0gc2l6ZSkKKwkJCQkJcmV0dXJuIHJldDsKIAotCQljYXNlIERQX0FVWF9OQVRJVkVfUkVQTFlf REVGRVI6Ci0JCQl1c2xlZXBfcmFuZ2UoQVVYX1JFVFJZX0lOVEVSVkFMLCBBVVhfUkVUUllfSU5U RVJWQUwgKyAxMDApOwotCQkJYnJlYWs7CisJCQkJcmV0ID0gLUVQUk9UTzsKKwkJCX0gZWxzZQor CQkJCXJldCA9IC1FSU87CiAJCX0KIAl9CiAKIAlEUk1fREVCVUdfS01TKCJ0b28gbWFueSByZXRy aWVzLCBnaXZpbmcgdXBcbiIpOwotCXJldHVybiAtRUlPOworCXJldHVybiByZXQ7CiB9CiAKIC8q KgpAQCAtMjQxLDYgKzIzNSwxMyBAQCBzdGF0aWMgaW50IGRybV9kcF9kcGNkX2FjY2VzcyhzdHJ1 Y3QgZHJtX2RwX2F1eCAqYXV4LCB1OCByZXF1ZXN0LAogc3NpemVfdCBkcm1fZHBfZHBjZF9yZWFk KHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAJCQkgdm9pZCAq YnVmZmVyLCBzaXplX3Qgc2l6ZSkKIHsKKwkvKgorCSAqIFNvbWV0aW1lcyB3ZSBqdXN0IGdldCB0 aGUgc2FtZSBpbmNvcnJlY3QgYnl0ZSByZXBlYXRlZCBvdmVyIHRoZQorCSAqIGVudGlyZSBidWZm ZXIuIERvaW5nIG9uZSB0aHJvdyBhd2F5IHJlYWQgaW5pdGlhbGx5IHNlZW1zIHRvICJzb2x2ZSIK KwkgKiBpdC4KKwkgKi8KKwlkcm1fZHBfZHBjZF9hY2Nlc3MoYXV4LCBEUF9BVVhfTkFUSVZFX1JF QUQsIERQX0RQQ0RfUkVWLCBidWZmZXIsIDEpOworCiAJcmV0dXJuIGRybV9kcF9kcGNkX2FjY2Vz cyhhdXgsIERQX0FVWF9OQVRJVkVfUkVBRCwgb2Zmc2V0LCBidWZmZXIsCiAJCQkJICBzaXplKTsK IH0KLS0gCjIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK